Warning: mysql_real_escape_string() expects parameter 2 to be...
pc-world
- php
0 Ingo Turski0 Tom
Bei folgendem Code kriege ich die Fehlermeldung "Warning: mysql_real_escape_string() expects parameter 2 to be resource, integer given in ...".
if(isset($_POST['oldpw'])) { $oldpw = mysql_real_escape_string(htmlentities($_POST['oldpw']),ENT_QUOTES); } else { $oldpw = ''; }
if(isset($_POST['newpw'])) { $newpw = mysql_real_escape_string(htmlentities($_POST['newpw']),ENT_QUOTES); } else { $newpw = ''; }
if(isset($_POST['newpw2'])) { $newpw = mysql_real_escape_string(htmlentities($_POST['newpw2']),ENT_QUOTES); } else { $newpw2 = ''; }
Und noch eine Frage - bin ich mit diesem Code (wenn er läuft) vor SQL-Injection und so geschützt?
Hi,
Bei folgendem Code kriege ich die Fehlermeldung "Warning: mysql_real_escape_string() expects parameter 2 to be resource, integer given in ...".
Du solltest wirklich ins Manual schauen und nicht mit hier unnötigen Parametern aus anderen Funktionen hantieren.
Und noch eine Frage - bin ich mit diesem Code (wenn er läuft) vor SQL-Injection und so geschützt?
Ja - und sogar dann, wenn Du auf die unsinnige Maskierung über htmlentities() verzichtest; erst bei der HTML-Ausgabe wäre ggfls. htmlspecialchars() ratsam.
freundliche Grüße
Ingo
Hi,
Bei folgendem Code kriege ich die Fehlermeldung "Warning: mysql_real_escape_string() expects parameter 2 to be resource, integer given in ...".
Du solltest wirklich ins Manual schauen und nicht mit hier unnötigen Parametern aus anderen Funktionen hantieren.Und noch eine Frage - bin ich mit diesem Code (wenn er läuft) vor SQL-Injection und so geschützt?
Ja - und sogar dann, wenn Du auf die unsinnige Maskierung über htmlentities() verzichtest; erst bei der HTML-Ausgabe wäre ggfls. htmlspecialchars() ratsam.freundliche Grüße
Ingo
Danke - nachdem ich jetzt htmlentities() entfernet habe, geht es.
Upps, habe gerade gemerkt, das ich den Parameter ENT_QUOTES zu htmlentities() reinbringen wollte, hab ihn aber zu mysql_real_escape_string() hinzugefügt :-)
[Deswegen die Fehlermeldung]
Hello,
Bei folgendem Code kriege ich die Fehlermeldung "Warning: mysql_real_escape_string() expects parameter 2 to be resource, integer given in ...".
if(isset($_POST['oldpw'])) { $oldpw = mysql_real_escape_string(htmlentities($_POST['oldpw']),ENT_QUOTES); } else { $oldpw = ''; }
Unabhängig davon, dass man möglichst Rohdaten speichern sollte und keine manipulierten, wäre vermutlich auch htmlspecialchars() die bessere Funktion.
Dein Fehler liegt in in einer falsch gesetzten Klammer und im fehlenden Argument für den Connection-Identifier.
if(isset($_POST['oldpw']))
{
$oldpw = mysql_real_escape_string(htmlentities($_POST['oldpw'], ENT_QUOTES), $con);
}
else
{
$oldpw = '';
}
So wäre es formal richtig, aber eben nicht sinnvoll, da htmlentities() oder htmlspecialchars() die Daten unbrauchbar machen würden für Kontexte außerhalb HTML.
Ein harzliches Glückauf
Tom vom Berg