Tom: MySQL Werteübergabe und Escaping

Beitrag lesen

Hello,

Dein Problem ist ein anders...

1. Übergabeformat von Werten in einem SQL-Query
2. Escaping von SQL-Werten
3. Injection-Probleme bei der Daten Übernahme ins Script

Aus einem Formularfeld werden Daten in dieser FORM gesendet
21:111:22

Dann solltest Du die geposteten Daten als erstes mal wieder ausgeben in einem "Affenformular" (siehe Archiv) und ein wenig damit spielen.
Da kommen dann bestimmt noch mehr Fragen hoch. :-)

Dieser Wert soll mit div. anderen in eine kleine DB-Tabelle.
Da bei meinen ersten Versuchen am : gemeckert wurde, habe ich ein str_replace benutzt. Der : soll nun durch ein _ ersetzt werden. Funktioniert.

Warum Daten verändern, wenn man sie auch ordentlich eintragen kann?

Doch bei speichern des Wertes in der DB bekomme ich diese Meldung:
Unknown column '11_22_33' in 'field list'

Was sagt uns das? Das Feld mit dem Namen ist nicht in der Feldliste (der Tabelle) enthalten.

Um Strings zu übergeben, muss man was tun? Richtig: man muss sie in Häkchen übergeben.
Was ist aber nun, wenn ein Häkchen im String drinsteckt? Shit!
Dann muss man den String vorher behandeln

Dafür gibt es bei MySQL die Funktion mysql_real_escape_string()

Und weil die so gut funktioniert, und man ja nie weiß, was in einm String drinsteckt, behandelt man sicherheitshalber jeden Feldwert damit, nur NULL und SQL-Funktionen nicht

Harzliche Grüße vom Berg
http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau