PHP Formular per E-Mail

  • Hallo

    Ich habs so versucht aber es kommt immer eine leere Email:

    PHP:

  • $HTTP_POST_VARS ist veraltet, benutze $_POST. Außerdem solltest du besser den phpMailer einsetzen und die mail-Funktion vergessen.

    Richtig debuggen
    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL); und ini_set("display_errors", true);
    3. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
    5. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

  • Hilfst du nicht gerne?
    Irgendwann hat man keine Lust mehr auf seine blöden Fehler. ;)

    Also $_POST solltest du verwenden, weil das Auto-Global ist, also selbst in einer Funktion wird die Variable sofort erkannt.
    Der PHPMailer verainfacht die ganze Sache gewaltig und ermöglicht dir auch, HTML-Emails und Anhänge abzuschicken. Dabei musst du nicht mit der Syntax der EMail-Header (from: etc.) vertraut sein.
    Also wenn das in einer separaten Funktion ist kann das so nicht gehen, mal durch $_POST ersetzen.
    Kommt den überhaupt eine Email an? Oder passiert nichts?
    Noch ein Hinweis:
    Innerhalb von <form> kannst du nicht direkt die Elemente <input> oder Text etc. benutzen. Du solltest es so machen:

    Code
    <form ...>
    <div>
    <input.../>
    Text...
    <input../>
    </div>
    </form>

    Viele liebe Grüße
    The User

  • Ich meinte, dass man auch manchmal einfach fragt, weil man die blöden Fehlermeldungen satt ist. ;)
    Ich weiß ja, dass du gerne hilfst, aber du tust so, als würde dich jede Frage belästigen. ;)

    Aber bitte Backtoptopic...