ali.
I sadržaj često treba sadržavati html tagove; od onih benignih (paragraf, bold...) pa do onih problematičnijih (linkovi itd). Također tu su i simboli koji često naljute mysql bazu pa se ne spremaju i ne prikazuju kako spada - neki od njih korisni i jednostavni kao na primjer navodnici - ".
Da stvar bude ljepša; na nekim serverima se to hendla automatski a na nekima ne - a kada su postavke vašeg development servera različite od onih na "pravom" serveru, pa još web stavljaju na više servera... ma milina.
Na webu ima podosta rješenja za isti problem; neka rade neka ne... evo kako mi je konačno proradila stvar:
1. Za točno spremanje sadržaja u msql bazu, potrebno je prvo napisati sljedeću funkciju:
function mysql_escape_gpc($dirty)
{
if (ini_get('magic_quotes_gpc'))
{
return $dirty;
}
else
{
return mysql_real_escape_string($dirty);
}
}
Funkcija provjerava koristi li server automatski magic_quotes_gpc, u kom slučaju nije potrebno eksplicitno pozivati mysql_real_escape_string() funkciju. Ako magic_quotes_gps nije aktivan na serveru, funkcija će pročistiti sadržaj.
2. Kod spremanja u bazu, potrebno je funkciju pozvati:
$cleancontent = mysql_escape_gpc($_POST['prOpis']);
$queryUpdateProd= "UPDATE " .TBL_OBJEKTI. " SET ";
$queryUpdateProd.= " , {$props['prOpis']} = '".$cleancontent."'";
$queryUpdateProd.= " WHERE id = '".$prodId."'";
3. Kod ispisa sadržaja na stranicu i/li u edit box, potrebno je pozvati funkciju stripcslashes:
$cleancontent = stripcslashes($props['detOpis']);$html.= $cleancontent;
return $html;