Formularweiterleitung funktioniert nicht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Formularweiterleitung funktioniert nicht

    Hallo allerseits,
    ich habe selber noch relativ wenig Ahnung über php und hab im Internet mal nach einigen Lösungsansätzen gesucht.
    Ich versuche, ein Formular zu erstellen, welches anschließend an meine E-Mail-Adresse weiter geleitet werden soll.
    Die Seite mit dem Formular an sich klappt auch soweit, aber die Weiterleitung will noch nicht so richtig.
    Könnt ihr mir da weiter helfen?
    Hier mal ein paar Schnipsel, wo ich denke, dass die wichtigen dabei sind:

    Aus der Formularseite (HTML allein):
    HTML-Code:
    <form method="post" action="versand.php">
    ...
    <input type="submit" value="Versenden">
    </form>
    Und hier nun aus der externen Php-Datei:
    PHP-Code:
    <html>
    <body>
    <?php
      $fehler 
    "";
      
    $name $_POST['name'];
      
    $mail $_POST['mail'];
      
    $text $_POST['text'];
      if (empty(
    $name)) {
        
    $fehler .= "<li>der Absendername fehlt</li>" ;
      }
      if (empty(
    $mail)) {
        
    $fehler .= "<li>die Mailadresse fehlt</li>" ;
      }
      if (empty(
    $text)) {
        
    $fehler .= "<li>keine Nachricht eingetragen</li>" ;
      }
      if (empty(
    $fehler)) {
        if (
    get_magic_quotes_gpc()) {
          
    $text stripslashes($text);
        }
        
    $return chr(13).chr(10);
        
    $an "adresse@domain.de" ;
        
    $betreff "Mein Kontaktformular" ;
        
    $von "From: Kontaktformular <null@MeineHTML.de>" ;
        
    $datum "Datum: ".date("j.n.Y").$return;
        
    $zeit "Zeit:  ".date("H:i").$return;
        
    $abs "Von:   ".$name." <".$mail.">".$return;
        
    $trennen "-----------------------------------------------".$return;
        
    $nachricht $datum.$zeit.$abs.$trennen.$text;
        
    mail($an,$betreff,$nachricht,$von);
      }
      
    ?>
      <html>
      <head>
        <title>Kontakt-Formular</title>
      </head>
      <body>
      <?php
      
    if (empty($fehler)) {
        
    $return chr(13).chr(10);
        
    $nachricht strip_tags($nachricht);
        
    $nachricht htmlentities($nachricht);
        
    $nachricht str_replace($return,"<br>",$nachricht);
        echo 
    "<p>Ihre Nachricht wurde versendet.</p>" ;
        echo 
    "<p>$nachricht</p>" ;
      } else {
        echo 
    "<p>Ihre Nachricht wurde nicht gesendet, weil</p>" ;
        echo 
    "<ul>$fehler</ul>" ;
      }
      
    ?>
      </body>
      </html>
    Da ich bei php noch recht wenig Ahnung habe und es ja auch nicht zu viel ist, habe ich lieber erstmal alles reingesetzt.

    Die Verlinkung an sich klappt soweit auch, nur es erscheint halt folgendes Fenster:


    der Absendername fehlt" ; } if (empty($mail)) { $fehler .= "
    die Mailadresse fehlt
    " ; } if (empty($text)) { $fehler .= "
    keine Nachricht eingetragen
    " ; } if (empty($fehler)) { if (get_magic_quotes_gpc()) { $text = stripslashes($text); } $return = chr(13).chr(10); $an = "adresse@domain.de" ; $betreff = "Mein Kontaktformular" ; $von = "From: Kontaktformular " ; $datum = "Datum: ".date("j.n.Y").$return; $zeit = "Zeit: ".date("H:i").$return; $abs = "Von: ".$name." <".$mail.">".$return; $trennen = "-----------------------------------------------".$return; $nachricht = $datum.$zeit.$abs.$trennen.$text; mail($an,$betreff,$nachricht,$von); } ?> ",$nachricht); echo "
    Ihre Nachricht wurde versendet.

    " ; echo "
    $nachricht

    " ; } else { echo "
    Ihre Nachricht wurde nicht gesendet, weil

    " ; echo "
    $fehler
    " ; } ?>

    Wo kann da der Fehler liegen??

    Dabei rauskommen soll am Ende einfach nur eine funktionierende weiterleitung und auch der Versand einer E-Mail an mich.
    Vielen Dank schon mal im Vorraus!

  • #2
    Auf deinem Server läuft kein PHP oder es ist nicht richtig konfiguriert.

    Du solltest dir aber dringend erstmal ein paar Grundlagen aneignen, bevor du dich an PHP heran wagst.

    Du gibst kaputten HTML-Code aus. Überprüfe mit dem W3C-Validator deinen HTML-Code und korrigiere die Fehler.

    get_magic_quotes_gpc() und stripslashes() kannst du dir sparen. Magic Quotes gibts schon seit PHP 5.4 nicht mehr.

    Wenn du möchtest, dass deine Mail zuverlässig ankommt, solltest du einen Mailer wie zB. PHPMailer verwenden und nicht mehr der Funktion mail() herumbasteln.

    Halte das EVA-Prinzip ein. Die HTML-Ausgabe sollte immer erst zum Schluss erfolgen. Vor der Verarbeitung (zB. Formularverarbeitung, Mailversand, usw.) sollte keine einzige Zeile HTML-Code ausgegeben werden.

    htmlentities() ist Quatsch. Für die Maskierung von HTML-Sonderzeichen verwende htmlspecialchars(). htmlentities() wird nur in sehr seltenen Spezialfällen benötigt.

    strip_tags() kannst du dir sparen, wenn du den Kontextwechsel beachtest (also htmlspecialchars() verwendest), und verstümmelt sowieso nur die Daten.

    Kommentar


    • #3
      Alles klar. Übergangsweise habe ich einen reinen HTML_Script gefunden, bei dem das Php Dokument auf einem anderem Server gespewichert ist. Ich werde die genannten Fehler mal überarbeiten.
      Danke schonmal!

      Kommentar

      Lädt...
      X