Kontaktformular Problem

  • Hallo!


    Ich habe ein Kontaktformular erstellt, das bis vor einiger Zeit eigentlich nie Probleme gemacht hat. Doch sein einigen Monaten gibt es immer wieder Probleme. Z.B. erhält der Absender des Formulars eine Fehlermeldung, trotzdem gelangt das ausgefüllte Formular an den Empfänger. Manchmal wird das versenden zwar als erfolgreich qittiert, jedoch kommt das ausgefüllte Formular nie beim Empfänger an. Die unterschiedlichsten Probleme treten bei verschiedenen Kunden auf, d.h. auf verschiedenen Servern. Ich weiß nicht mehr ein und aus. Und da ich kein PHP-Programmierer bin (das Formular hat mir mal jemand erstellt und ich verändere es nur entsprechend), weiß ich natürlich nicht, wie ich das Formular so optimieren kann, dass keine Probleme mehr auftreten. Kann mir jemand helfen?


    Hier ist der Quellcode der mailer.php:


    <?


    $angaben = "
    Reservierungsanfrage:\n
    \n
    ------------------------------------------------------\n
    Anreisedatum : $Anreise\n
    ------------------------------------------------------\n
    Abreisedatum : $Abreise\n
    ------------------------------------------------------\n
    Anzahl Einzelzimmer : $Einzelzimmer\n
    ------------------------------------------------------\n
    Anzahl Doppelzimmer : $Doppelzimmer\n
    ------------------------------------------------------\n
    Anzahl Kinder : $Kinder\n
    ------------------------------------------------------\n
    Anrede : $Anrede\n
    ------------------------------------------------------\n
    Nachname : $Nachname\n
    ------------------------------------------------------\n
    Vorname : $Vorname\n
    ------------------------------------------------------\n
    Firma : $Firma\n
    ------------------------------------------------------\n
    Strasse : $Strasse\n
    ------------------------------------------------------\n
    PLZ, Ort : $Ort\n
    ------------------------------------------------------\n
    Land : $Land\n
    ------------------------------------------------------\n
    Telefon : $Telefon\n
    ------------------------------------------------------\n
    Fax : $Fax\n
    ------------------------------------------------------\n
    E-Mail : $Mail\n
    ------------------------------------------------------\n
    Anliegen : $Anliegen\n
    ------------------------------------------------------\n
    ";


    if (($Anreise =="") || ($Abreise =="") || ($Einzelzimmer =="") || ($Doppelzimmer =="") || ($Nachname =="") || ($Telefon =="") || ($Mail == ""))
    {
    include "http://www.hoteldomain.de/reservierung_error.html";
    }
    else
    {
    if ($Vorname != "") {
    mail ("hotel@hoteldomain.de","Reservierungsanfrage",$angaben,"From: " . $Vorname . " " . $Nachname . " <" . $Mail . ">");
    } else {
    mail ("hotel@hoteldomain.de","Reservierungsanfrage",$angaben,"From: " . $Nachname . " <" . $Mail . ">");
    }
    include "http://www.hoteldomain.de/reservierung_gesendet.html";
    }


    ?>

  • schreib doch am besten erstmal überall $_POST['Anreise'], $_POST['Abreise'] usw.... jeweils für die ganzen Variablen.
    Ich hatte auch mal ein uralt-script für nen mailer bekommen und es ging nix, da die Variablen auch einfach nur so drinstanden wie bei dir jetzt... danach hat es geklappt.

  • Hallo gurkerl,


    auch wenn danach nicht gefragt wurde, muß ich Dir sagen, dass das kein Formmailer ist, sondern eine Krankheit. Das Script sollte, so wie es ist, überhaupt nicht in's Web gestellt werden, weil es eine Spamschleuder und eine Einladung an Spamversender ist.
    Schau Dir doch bitte mal Threads wie z.B. diesen an, um zu erkennen welche Gefahren von einem Script wie diesem ausgehen können.


    Im Scripts Brett findest Du wesentlich ausgereiftere Lösungen, wie etwa diese, die man mit etwas Know-how auch sehr leicht um weitere Felder erweitern kann. Ansonsten gibt es hier im Forum auch einen Workshop zum erstellen eines Formmailer.

  • Ich tippe mal das register_globels off gestellt ist.


    Dann müssten deine Variablen so aussehen $anrede = $_POST['anrede'];
    Auserdem solltest du gründlicher prüfen was in deine Textfelder eingegeben wird. Und ich empfehle ein captcha einzu bauen

  • Hallo!


    Oh oh oh. Da muss ich mich wohl mal intensiver damit beschäftigen.
    Aber als Zwischenlösung werde ich mal das mit den Variablen versuchen, was ihr gemeint habt.


    Nachdem ich ja nur Laie bin eine blöde Frage:
    Betrifft das alle vorkommenden Variablen im Code?
    D.h. muss ich oben in der Auflistung z.B. statt $Anreise\n demnach $_POST['Anreise'] schreiben und unten bei if auch statt ($Anreise =="") nun ($_POST['Anreise'] =="") schreiben?

  • Also ich habe es jetzt so abgeändert:


    <?php


    $_POST['angaben'] = "
    Reservierungsanfrage (englischsprachige Seite):\n
    \n
    ------------------------------------------------------\n
    Anreisedatum : $_POST['Anreise']
    ------------------------------------------------------\n
    Abreisedatum : $_POST['Abreise']
    ------------------------------------------------------\n
    Anzahl Einzelzimmer : $_POST['Einzelzimmer']
    ------------------------------------------------------\n
    Anzahl Doppelzimmer : $_POST['Doppelzimmer']
    ------------------------------------------------------\n
    Anzahl Kinder : $_POST['Kinder']
    ------------------------------------------------------\n
    Anrede : $_POST['Anrede']
    ------------------------------------------------------\n
    Nachname : $_POST['Nachname']
    ------------------------------------------------------\n
    Vorname : $_POST['Vorname']
    ------------------------------------------------------\n
    Firma : $_POST['Firma']
    ------------------------------------------------------\n
    Strasse : $_POST['Strasse']
    ------------------------------------------------------\n
    PLZ, Ort : $_POST['Ort']
    ------------------------------------------------------\n
    Land : $_POST['Land']
    ------------------------------------------------------\n
    Telefon : $_POST['Telefon']
    ------------------------------------------------------\n
    Fax : $_POST['Fax']
    ------------------------------------------------------\n
    E-Mail : $_POST['Mail']
    ------------------------------------------------------\n
    Anliegen : $_POST['Anliegen']
    ------------------------------------------------------\n
    ";


    if (($_POST['Anreise'] =="") || ($_POST['Abreise'] =="") || ($_POST['Einzelzimmer'] =="") || ($_POST['Doppelzimmer'] =="") || ($_POST['Nachname'] =="") || ($_POST['Telefon'] =="") || ($_POST['Mail'] == ""))
    {
    include "http://www.hoteldomain.de/reservierung_error_E.html";
    }
    else
    {
    if ($Vorname != "") {
    mail ("hotel@hoteldomain.de","Reservierungsanfrage",$_POST['angaben'],"From: " . $_POST['Vorname'] . " " . $_POST['Nachname'] . " <" . $_POST['Mail'] . ">");
    } else {
    mail ("hotel@hoteldomain.de","Reservierungsanfrage",$_POST['angaben'],"From: " . $_POST['Nachname'] . " <" . $_POST['Mail'] . ">");
    }
    include "http://www.hoteldomain.de/reservierung_gesendet_E.html";
    }


    ?>



    --> Aber er schreibt mir, wenn ich das Formular wegschicke folgende Meldung: Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /www/htdocs/w00675ce/kunden/mailer_hoteldomain_e.php on line 7



    Ich weiß nicht ob es wichtig zu wissen ist, aber ich habe die PHP Datei nicht auf den Server des Kunden sondern auf meinem Server ausgelagert, weil der Server des Kunden kein PHP unterstützt.

  • 1. Nur die Variablen, die aus dem Formular kommen, sond $_POST-Variablen, der Rest bleibt, wie er ist.
    2.Du musst für die Variablen, die in dem String stehen, diesen unterbrechen.



    Mit den anderen analog


    Ich würde Dir aber auch empfehlen, eine Opensource-Mailer zu benutzen... Das kostet zwar vielleicht etwas Einarbeitungszeit, aber es ist sicherer und hat meist mehr Funktionen..


    P.S.: Bitte den Code mit \[php\]...[/\php\] posten (ohne \)

    ...Meine Meinung :)