Christian Seiler: Wo liegt der Fehler in mail()

Beitrag lesen

Hallo Stephan,

kann mir jemand sagen, wo der Fehler liegt? Er muss in mail() liegen, da _ich_ das eingefügt habe:

Bist Du Dir sicher? Dein Aufruf der Mail-Funktion ist richtig, nur wird dieser nie erreicht, da Deine Datenbankabfrage fehlschlagen muss, denn:

if($insert = @mysql_query("INSERT INTO USERS SET user = '$username', pass = '$pass', anr = '$anrede', vorn = '$vorname', name = '$name', mail = '$email'")) {

Das ist kein gültiges SQL.

Die Syntax von INSERT lautet:

INSERT INTO tabelle (spalte1, spalte2, ...) VALUES (wert1, wert2, ...)

Die Syntax von UPDATE lautet:

UPDATE tabelle SET spalte1 = wert1, spalte2 = wert2, ... WHERE spalteX = wertX

Vermischen darf man das nicht. Außerdem solltest Du jeden Wert mit mysql_escape_string() maskieren, damit es zu keinen Sicherheitsproblemen kommen kann.

$query = "INSERT INTO users (user, pass, anr, vorn, name, mail) VALUES ('".mysql_escape_string ($username)."', '".mysql_escape_string ($pass)."', '".mysql_escape_string ($anrede)."', '".mysql_escape_string ($vorname)."', '".mysql_escape_string ($name)."', '".mysql_escape_string ($email)."')";

$query kannst Du dann der Funktion mysql_query() übergeben.

Viele Grüße,
Christian