Jörg Peschke: Verständnisproblem bei mysql_query und POST

Beitrag lesen

Hallo,

Das hat aber nie was eingetragen bis ich folgendes gemacht habe: Ich habe in meinem Input-Field "meinName" mit Anführungszeichen(!!) geschrieben.

Das ist relativ leicht zu erklären:
"meinName" ist ein String, und als solcher will mysql ihn auch verstanden wissen.

Eine (naive) Lösung wäre, zu schreiben:

$insert_user_daten = @mysql_query("INSERT INTO userdata (name) VALUES ('$name')");

Das wird auf den ersten Blick funktionieren.
Aber was passiert, wenn ein User
eingibt

Max 'Mustermann

?

Dann beendet Mysql den String vor Mustermann, und weiss dann mit "Musztermann" nichts mehr anzufangen.

Schlimmer noch, der Benutzer könnte eingeben

Max '; DROP TABLE userdata

Herzlichen Glückwunsch :)
(SQL-Injection nennt man dann das).

Aber es gibt Rettung ! :)

Hope tah helps,

Jörg