mysql_real_escape_string

Status
Niet open voor verdere reacties.

DutchDisturbed

Gebruiker
Lid geworden
31 mei 2004
Berichten
317
ik gebruik op mijn site de volgende functie om een bericht toe te voegen: ".mysql_real_escape_string($_POST['bericht'])." deze functie moet dan toch slashes plaatsen bij de info in de database? waarom doet ie dit dan niet?
bvd
 
Laatst bewerkt:
Stel, $_POST['bericht'] is Jantje's huis
Met de functie mysql_real_escape_string() eromheen wordt het Jantje\'s huis
Als het dan in de SQL komt te staan ziet de SQL er bijvoorbeeld zo uit:

INSERT INTO berichten VALUES ('Jantje\'s huis')

De database vangt dit dan weer op als Jantje's huis, zodat het niet verkeerd weergeven wordt als het weer uit de database gehaald wordt. De functie zorgt er alleen voor dat er niets fout gaat bij het zetten van de tekst in de database.
Wil je dat het in de database óók met slashes komt te staan, dan dien je in de meeste gevallen tweemaal mysql_real_escape_string() te gebruiken:

mysql_real_escape_string(mysql_real_escape_string($_POST['bericht']))

Let er wel op dat in veel gevallen bij de POST-variabelen al automatisch slashes worden geplaatst door PHP. Dan hoef je in princiepe geen functie als mysql_real_escape_string() eromheen te plaatsen, en als je het in de database ook met slashes wil hebben staan, hoef je die maar één keer te gebruiken.
 
Om te controleren of PHP er zelf slashes omheen gooit: get_magic_quotes_gpc ()

gpc staat voor get post cookie. Als deze functie true geeft, worden dus automatisch ge-escaped. (\ wordt \\, ' wordt \' en " wordt \")
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan