Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: stripslashes ei pelaa (henkimaailma on todellinen, part I)

Triskal [12.08.2006 00:30:19]

#

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...?

Juice [12.08.2006 01:09:28]

#

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));
}
?>

Antti Laaksonen [12.08.2006 01:12:16]

#

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/11576-mysql-real-escape-string

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta