Kontaktormular funktioniert nicht

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von cym, 13.03.2005.

  1. cym

    cym Thread Starter MacUser Mitglied

    Beiträge:
    1.352
    Zustimmungen:
    9
    MacUser seit:
    03.05.2004
    Hallo Macfreunde!

    Da ich von PHP 0-Ahnung habe, benutzte ich dieses Kontaktformular.
    Dann habe ich es ein wenig abgeändert:

    Wenn ich das ganze auf dem Server teste und alle Felder ausfülle, kommt trotzdem die Meldung "Bitte gehen Sie zurück und füllen Sie alle Felder aus!" Was funktioniert da nicht? :confused:

    HTML:
    <form action="scripts/formauswertung.php" method="post" >
    Vor- und Nachname 
    <input name="Name" size="50" type="text" class="inputbox" tabindex="5">
    
    e-Mail-Adresse 
    <input name="Email" size="50" type="text" class="inputbox">
    
    Betreff 
    <select name="Betreff" size="1" class="inputbox" tabindex="0">
    <option>Allgemeine Anfrage</option>
    <option>Anfrage Audio</option>
    <option>Anfrage Video</option>
    <option>Anfrage Foto</option>
    <option>Anfrage Diverses</option>
    <option>Kritik</option>
    <option>anderer</option>
    </select>
    
    Mitteilung
    <textarea cols="48" name="Mitteilung" rows="10" class="inputbox"></textarea>
    
    Wie beurteilen Sie unsere Webseite?
    <input name="Antwort" type="radio" value="gut" class="inputbox"> Gut
    <input name="Antwort" type="radio" value="mittel" class="inputbox"> Mittel
    <input name="Antwort" type="radio" value="schlecht" class="inputbox"> Schlecht
    
    <input name="Send" type="submit" value="Abschicken" class="inputbox"><input name="Reset" type="reset" value="Zur&uuml;cksetzen" class="inputbox">
    PHP:
    <?php

    $Empfaenger 
    "test@test.test";

    if(
    $_REQUEST['Send'])
    {
       if(empty(
    $_REQUEST['Name']) || empty($_REQUEST['Email']) || empty($_REQUEST['Nachricht']))
       {
          echo
    "Bitte gehen Sie <a href=\"javascript:history.back();\">zurück</a> und füllen Sie alle Felder aus!";
       }
       else
       {
          
    $Mailnachricht "Sie haben folgenden Nachricht erhalten: \n\n";
          while(list(
    $Formularfeld$Wert)=each($_REQUEST))
          {
             if(
    $Formularfeld!="Send")
             {
                
    $Mailnachricht .= $Formularfeld.": ".$Wert."\n";
             }
          }
          
    $Mailnachricht .= "\nDatum/Zeit: ";
          
    $Mailnachricht .= date("d.m.Y H:i:s");
          
    $Mailbetreff "Kontakt: ";
          
    $Mailbetreff .= $_REQUEST['Betreff'];
          
    mail($Empfaenger$Mailbetreff$Mailnachricht"From: ".$_REQUEST['Email']);
          echo
    "Vielen Dank für Ihre eMail!";
       }
    }
    else
    {
       echo
    "Ein Fehler ist aufgetreten. Bitte gehen Sie auf diese <a href=\"kontaktformular.php\">Seite</a>.";
    }

    ?>
     
  2. Hilarious

    Hilarious MacUser Mitglied

    Beiträge:
    2.195
    Zustimmungen:
    5
    MacUser seit:
    25.11.2004
    Du prüfst im PHP-Skript, ob das Formular den Wert "Nachricht" übermittelt. Falls nicht, schickst Du den Benutzer zurück. Allerdings nennst Du das Eingabefeld "Mitteilung" und nicht "Nachricht". So fehlt aus Sicht des Skriptes etwas;)

    Wenn Du wissen willst, was Dein Formular übertragen hat, hänge folgendes an den Quelltext kurz vor </body> unten dran:

    Code:
    <? echo "<pre>\n", print_r ($_REQUEST), "</pre>\n"; ?>
    
    Viel Erfolg!
     
  3. cym

    cym Thread Starter MacUser Mitglied

    Beiträge:
    1.352
    Zustimmungen:
    9
    MacUser seit:
    03.05.2004
    Danke! Ja, das Textfeld musste "Nachricht" heissen. Nun funktionierts :)

    Tataaa: :D
    [​IMG]
     
    Zuletzt bearbeitet: 13.03.2005
Die Seite wird geladen...