MudGuard: SQL ignoriert eine Update-Ausführung

Beitrag lesen

Hi,

$name    = $_POST['name'];
$passwort                    = $_POST['passwort'];
$email                   = $_POST['email'];
$sichtbar                  = $_POST['sichtbar'];
$strasse                   = $_POST['strasse'];
$hausnummer                   = $_POST['hausnummer'];
$plz                   = $_POST['plz'];
$ort                   = $_POST['ort'];
$sichtbar_anschrift                   = $_POST['sichtbar_anschrift'];
$rechte   = $_POST['rechte'];
$sql = "UPDATE emailadressen SET name = '$name', rang= '$rechte', email = '$email', sichtbar = '$sichtbar', strasse = '".$strasse."', nummer = '$hausnummer', plz = '$plz', ort = '$ort', sichtbar\_anschrift = '$sichtbar_anschrift' WHERE name LIKE '$name'";

Du übernimmst praktisch ungeprüft und ohne Escapen die Daten, die vom User kommen, in das MySQL-Statement.
Stell Dir mal vor, da schreibt jetzt jemand
bla';
oder ähnliches ins email-Feld.
Dann hat Deine Abfrage u.U. andere Auswirkungen als von Dir geplant.

Aber zur Frage, warum sich der Name nicht ändert:
Du ersetzt die Spalte name durch $name genau dann, wenn name LIKE $name ist - die Spalte kann sich also nicht ändern.

cu,
Andreas

--
MudGuard? Siehe http://www.Mud-Guard.de/
Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.