SQL ignoriert eine Update-Ausführung
Stephan
- php
0 MudGuard
Hi,
mein SQL ignoriert eine Update-Ausführung, aber die anderen macht er. Die Variable wird auch richtig übergeben. Hier der Code:
[...]
$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'];
include("config.inc.php");
$db = @mysql_pconnect($host, $user, $pass) or die ("Verbindung mit MySQL-Server fehlgechlagen!");
@mysql_select_db($database, $db) or die ("Verbindung zur Datenbank fehlgeschlagen!");
if($passwort == "") {
$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'";
} else {
[...]
Seht ihr da was? Also "name" wird nicht geupdated...
Danke schon mal
Stephan
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 SETname
= '$name',rang
= '$rechte',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