Hali! Lenne egy olyan kérdésem hogy hogy lehet azt megcsinálni hogy kiíratásnál ne rakja bele a \ jelet a kódba mer a hír létrehozásakor az adatbázisba sajna bele kell rakni. Előre is kössz.
Mármint az adatbázisba a perjeleket? Az adatbázisba berakáskor kell levédeni (escape) a különleges karaktereket, de kiolvasáskor az nem lesz a string része. (Mint pl php-val kiíratás esetén az alábbi string kiírásakor sem lesz benne perjel:
$string = "idézet X.-től: \"szép idézet\"";
Tehát szerintem vagy rosszul csinálsz valamit az adatbázisba mentéskor, vagy nagyon rég használtam közvetlenül adatbázisba írást...
(Saját függvénytáram van erre, így tényleg rég használtam :D )
Beíráskor: mysql_real_escape_string()
Kiolvasáskor nem kell semmi.
Kiíratáskor: htmlspecialshars() ahogy solkprog helyesen javasolta.
De ha php.ini-ben a magic_quotes_gpc állítás on, akkor a $_GET, $_POST és $_COOKIE tömbök értékei automatikusan kapnak egy adag fordított törtvonalas árnyékolást a különleges jelentésű karaktereikre. Ezeket pedig a mysql_real_escape_string() megduplázza, tehát bekerülnek az adatbázisba:
$_GET['ize'] => '3.5" lemez' // alapból
$_GET['ize'] => '3.5\" lemez'; // magic_quotes_gpc on hatására
$_GET['ize'] => '3.5\\\" lemez'; // mysql_real_escape_string() után
Ezért kell használni a solkprog által említett stripslashes() függvényt. Bár a hordozhatóság kedvéért lehetőleg feltételesen, csak ha a get_magic_quotes_gpc() függvény visszatérési értéke true.
De szerencsére a magic_quotes_gpc állítás már ellenjavallt, remélhetőleg hamarosan el is tűnik.
... a dolgot, illetve nálam azért nem okozott problémát, mert én eleve úgy csináltam.
A magic_quotes-től függően már induláskor meg kell szabadítani a változókat a fölösleges dolgoktól, mert mindenhova bekerülnek! (Illetve mindenhol el lehet játszani, hogy vagy van magic_quotes, vagy nincs, de csak normálisabb egyszer jól megcsinálni...)
stripslashes
Köszi
Miért kellene belerakni?
(Saját függvénytáram van erre, így tényleg rég használtam :D )
Beíráskor: mysql_real_escape_string()
Kiolvasáskor nem kell semmi.
Kiíratáskor: htmlspecialshars() ahogy solkprog helyesen javasolta.
Beíráskor:
De szerencsére a magic_quotes_gpc állítás már ellenjavallt, remélhetőleg hamarosan el is tűnik.
Megfordítanám....
A magic_quotes-től függően már induláskor meg kell szabadítani a változókat a fölösleges dolgoktól, mert mindenhova bekerülnek! (Illetve mindenhol el lehet játszani, hogy vagy van magic_quotes, vagy nincs, de csak normálisabb egyszer jól megcsinálni...)
Emlékeim szerint ez működik: http://www.php.net/manual/en/function.get-magic-quotes-gpc.php#97783
Megoldódott
addig jó amig
jobban jársz ha ezt beilleszted olyan helyre ami mindig lefut és még az adatbázis műveletek előtt van: