hi,
wenn ich ne anweisung hab SELECT * FROM xxx WHERE id = '".$HTTP_GET_VARS['id']."'
wie kan ich verhindern dass der benutzer beim aufrufen der seite einen befehl in id eingibt der der datenbank schadet??
mit mysql_real_escape_string() oder?
hi,
wenn ich ne anweisung hab SELECT * FROM xxx WHERE id = '".$HTTP_GET_VARS['id']."'
wie kan ich verhindern dass der benutzer beim aufrufen der seite einen befehl in id eingibt der der datenbank schadet??
mit mysql_real_escape_string() oder?
Wenn ID wirklichg nur eine Zahl sein soll, kannst du preg_match verwenden:
Ansonsten ist deine Überlegeung schon richtig:Code:if (!preg_match("=^[0-9]+$=i", $HTTP_GET_VARS['id'])) { die('Fehler'); }
mysql_real_escape_string maskiert alle Schadhaften zeichen![]()
MfG Christian
was ist das denn @killerbees ?
mach es doch so:
if(!is_numeric($_GET['id'])) {
die("Unterlassen Sie das!");
}
sonst mysql_real_escape_string für strings und so
Sorry, habe bei dem Befehl etwas vergessen![]()
Mit is_numeric geht es natürlich auch...
MfG Christian
[qutoe]
if(!is_numeric($_GET['id'])) {
die("Unterlassen Sie das!");
}
[/quote]
so hab ich mir das auch gedacht XD
aber ok, ich maskier lieber die bösen zeichen :P danke sehr
oder mal in einfach:
SELECT * FROM xxx WHERE id = '".(INT)$_GET['id']."'
Lesezeichen