Stephan: Wo liegt der Fehler in mail()

Hallo,

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

---
if($insert = @mysql_query("INSERT INTO USERS SET user = '$username', pass = '$pass', anr = '$anrede', vorn = '$vorname', name = '$name', mail = '$email'")) {
echo '<p align="center">Der neue Benutzer wurde erfolgreich angelegt!<br><br><a class=style1 href="neu.php">Mein BZH - LogIn</a></p>';
echo (

mail($email,$betreff,$nachricht,"From: service@lexikon.bildungszentrum-hyperkinetik.de"));

}else{
---

Danke schon jetzt

Stephan--
--
Ohne Ziel stimmt jede Richtung

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

    1. Boa, Du bist klasse, Vielen Dank!!!!!--
      --
      Ohne Ziel stimmt jede Richtung

      1. Hallo,

        Boa, Du bist klasse, Vielen Dank!!!!!--

        Das haben wir am Donnerstag nach dem Boa-Gig in Halle auch gesagt ;-).

        MfG, Thomas

        --
        "It's Not Punk Anymore It's Now New Wave ..." [Boa, C 90, 2003]
    2. Hello,

      Die Syntax von INSERT lautet:

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

      Das halte ich aber für ein Gerücht.
      Die Syntax mit SET ist für INSERT genauso erlaubt. Sie hat nur den Nachteil, dass man nur einen einzigen Datensatz einfügen kann.

      Insert kennt drei Methoden:

      insert [opt] into table [(spalten)] values (valueliste1),(valueliste2)...

      insert [opt] into table set spalte1=wert1, spalte2=wert2, ...

      insert [opt] into table (spalten) select ...

      Ich würde den Fehler eher bei unterlassenen

      mysql_escape_string()

      suchen. Wer weiß, was in der Mitteilung für Zeichen stehen.

      ich empfehle http://www.fhh.opensource-mirror.de/mysql.org/Downloads/Manual/manual-a4.pdf

      Da steht eigentlich alles drin

      Grüße

      Tom