Stephan: SQL ignoriert eine Update-Ausführung

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

  1. 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.