string in Datenbank (mysql)
Thomas
- datenbank
0 bleicher0 Vinzenz Mai
Ihc würde gerne wennich einen String in die MYSQL Datenbank schreibe, diesen vorher SICHERN. Ich denke diese Funktion müsste OK sein!
function IN_DB($string)
{
return addslashes(htmlentities($string));
}
oder gibt es eine elegantere Lösung?
Grüße,
real escape string?
MFG
bleicher
Hallo,
Ihc würde gerne wennich einen String in die MYSQL Datenbank schreibe, diesen vorher SICHERN. Ich denke diese Funktion müsste OK sein!
Du irrst.
oder gibt es eine elegantere Lösung?
es gibt vor allem richtigere :-)
Ich lege Dir den Artikel Kontextwechsel von dedlfix ans Herz.
Freundliche Grüße
Vinzenz
Also müsste es so dann perfekt sein:
mysql_query("UPDATE tabelle SET name='".mysql_real_escape_string($name)."' WHERE id=1");
Oder kannich es auch vorher anwenden:
$name = mysql_real_escape_string(stripslashes($name));
und anschliessend so
mysql_query("UPDATE tabelle SET name=$name WHERE id=1");
Hello,
Also müsste es so dann perfekt sein:
fast
mysql_query("UPDATE tabelle SET name='".mysql_real_escape_string($name)."' WHERE id=1");
Wenn Du mysql_REAL_escape_string() benutzt, solltest Du der Ordnung halber auch die Verbindungskennung angeben. Es gibt sonst immer mal wieder "Überraschungen".
Oder kannich es auch vorher anwenden:
$name = mysql_real_escape_string(stripslashes($name));
Das stripslashes() sollte immer nur abhängig von den tatsächlichen Umständen verwendet werden, also i.d.R. von der Einstellung von magic_quotes_gpc, solange es das noch gibt.
http://de2.php.net/manual/en/function.get-magic-quotes-gpc.php
http://de2.php.net/manual/en/security.magicquotes.php
und anschliessend so
mysql_query("UPDATE tabelle SET name=$name WHERE id=1");
Immer die Rückgabewerte auffangen und auswerten!
Und Strings müssen quotiert werden.
$update = mysql_query("UPDATE tabelle SET name='$name' WHERE id=1");
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg