Ihme että minulla on vielä tukkaa päässä, koska niin paljon ottaa kupoliin. Ongelmani on seuraava:
koodiesimerkki
<?php // Näitä ilmanhan homma ei toimi, siispä ne suoritetaan ekana. set_magic_quotes_runtime(1); get_magic_quotes_gpc(); // Sitten on välissä piitkä pätkä koodia, haetaan mysql_fetch_arraylla vieraskirjaviesti tietokannasta $viesti-taulukkoon. Viestissä on kenoviivat, eli backslashit. Ne on lisätty addslashes()-funktiolla. print "<pre width=\"0\">".stripslashes($viesti['viesti'])."</pre>"; ?>
Ja ei. Kaiken järjen mukaan pitäisi toimia. Mutta ei toimi. Tekstissä on vieläkin backslashit.
Olen tapellut koko päivän Int2000:n kanssa. Tällä hetkellä työn alla oleva projekti on kotikoneelta katsottuna valmis, mutta Int2000:lla se vain bugittaa. Hjälp...?
Itse olen havainnut paaljon helpommaksi ajaa merkkijono vain seuraavanlaisen funktion läpi tallennettaessa kuin pelleillä magic_quoteilla ja addslasheilla:
<?php function sanitize($str) { return (get_magic_quotes_gpc() ? mysql_real_escape_string(stripslashes($str)) : mysql_real_escape_string($str)); } ?>
Ongelma on varmaan siinä, että viesteissä on tietokannassa kaksinkertaiset kenoviivat.
Näin käy, jos PHP lisää automaattisesti yhdet kenoviivat ja sinä toiset.
Voit tarkistaa tämän asian tulostamalla sivulle ensin tietokannasta haetun viestin sellaisenaan.
Ratkaisu on tarkistaa PHP:n asetus magic_quotes_gpc ja lisätä kenoviivoja oikea määrä.
https://www.ohjelmointiputka.net/keskustelu/
Aihe on jo aika vanha, joten et voi enää vastata siihen.