Mailformular Fehlermeldung ausgeben

herrgarnele

Erfahrenes Mitglied
Hallo zusammen!

Ich habe zwar schon einige Threads gelesen, die in die Richtung gehen, aber keinen, der mir bei meiner Fragestellung weiterhilft.. und zwar:

Ich habe ein stinknormales Kontaktformular, Abfragen usw. laufen alle wunderbar.
Nur habe ich ein Problem mit der Ausgabe von Fehlernachrichten:
Über echo oder print bzw printf bekomme ich immer nur Ausgaben auf ein neues html-Dokument.
Ich hätte aber gerne, dass bei einer Fehleingabe des Users die Fehlermeldung in einem bestimmten Feld auf dem Formular-html erscheint.
Z.B. in einer bestimmten Tabellenzeile o.ä.

Ich bin absoluter PHP-Neuling, daher sorry, falls das ne banale Frage ist..
 
Naja was heisst denn neue Seite?
Die Frage ist ja wem du die Daten des Formulars übergibst
und was dieses macht. Anbieten würde es sich beispielsweise
zum anzeigen des Formualrs udn zu senden das gleiche zu verwenden.
Dann prüfst du zuerst ab ob das Formular abgeschickt wird.
Dort dann eben entsprechend auch die Fehleingaben und speicherst
dir zu jedem Feld eine Fehlermeldung in einer Variable.

Das FOrmular zeigst du dann an, wenn es nur angezeigt werden soll
oder ein Fehler beim Senden auftrat, füllst das Formular wieder mit
den alten Daten damit der User nichta lles neu ausgeben muss
und liest entsprechend auch die fehlervariablen an passender Stele aus.
 
Hi Ben Ben!

Erstmal danke für Deine Antwort.
Leider bin ich wie gesagt ein Neuling was PHP anght. Daher klingt Deine Beschreibung zur Lösung meines Problems für mich zwar schlüssig, aber ich weiß nicht so genau wie ich das umsetzen kann..

Ich poste jetzt einfach mal meinen Code. Vielleicht kannst mir ja anhand dem Code konkret sagen wie ich des in Griff bekomm? ;)


So sieht des Formular in meiner html aus:
HTML:
     <form name="contact" method="post" action="contact.php"> 
     <tr> 
     <td width="100" height="25" align="left" valign="bottom">Name:</td> 
     <td height="25" align="left" valign="bottom"><input name="Name" type="text" size="30"></td> 
     </tr> 
     <tr> 
     <td width="100" height="25" align="left" valign="bottom">Email-Adresse:</td> 
     <td height="25" align="left" valign="bottom"><input name="Email" type="text" size="30"></td> 
     </tr> 
     <tr> 
     <td width="100" height="25" align="left" valign="bottom">Firma:</td> 
     <td height="25" align="left" valign="bottom"><input name="Firma" type="text" size="30"></td> 
     </tr> 
     <tr> 
     <td width="100" height="25" align="left" valign="bottom">Telefon:</td> 
     <td height="25" align="left" valign="bottom"><input name="Telefon" type="text" size="30"></td> 
     </tr> 
     <tr> 
     <td width="100" height="25" align="left" valign="bottom">Adresse:</td> 
     <td height="25" align="left" valign="bottom"><input name="Adresse" type="text" value="" size="30"></td> 
     </tr> 
     <tr> 
     <td colspan="2"><br><br> 
     Gew&uuml;nschte Art der Kontaktaufnahme: &nbsp; 
     <select name="Kontaktart"> 
     <option value="1">Email</option> 
     <option value="2">Telefon</option> 
     <option value="3">Post</option> 
     </select> 
      <br><br> 
     Ihre Nachricht:<br> 
     <textarea name="Message" cols="40" rows="12"></textarea> 
     <br><br> 
     <input type="submit" name="submit" value="Abschicken"> 
 hier h&auml;tte ich gerne die Fehlermeldung!								 
     <br><br> 
     </form>

Und die PHP:
PHP:
   <html>
   <head>
   <title>Kontaktformular</title>
   </head>
   <body>
   
   <?php
   $emailTo = "DaniMann <dani@2klang.net>";
   $emailFromName = $_POST['Name'];
   $emailFrom = $_POST['Email'];
   $emailFirma = $_POST['Firma'];
   $emailTelefon = $_POST['Telefon'];
   $emailAdresse = $_POST['Adresse'];
   $emailSubject = "Kontaktformular";
   $emailMessage = $_POST['Message'];
   
   $emailList[1] = 'Email';
   $emailList[2] = 'Telefon';
   $emailList[3] = 'Post';
   
   
   // Vorbereiten des Body (Email an DaniMann)
   $Body .= "Nachricht per Email-Formular:\n\n";
   $Body .= "Name: $emailFromName\n";
   $Body .= "Firma: $emailFirma\n";
   $Body .= "Telefon: $emailTelefon\n";
   $Body .= "Adresse: $emailAdresse\n";
   $Body .= "Gewünschte Art der Kontaktaufnahme: " . $emailList[$_POST['Kontaktart']] . "\n";
   $Body .= "\n\nNachricht:\n\n$emailMessage";
   
   
   if (empty($emailFromName)) {
   	echo 'Bitte geben Sie Ihren Name an';
   } elseif (!preg_match('/^([A-Z0-9\.\-_]+)@([A-Z0-9\.\-_]+)?([\.]{1})([A-Z]{2,6})$/i', $emailFrom) || empty($emailFrom)) {
   	echo 'Die angegebene Email-Adresse ist ung&uuml;ltig.';
   } elseif (empty($emailMessage)) {
   	echo 'Bitte geben Sie eine Nachricht ein.';
   } elseif (($_POST['Kontaktart'] < 1) || ($_POST['Kontaktart'] > 3)) {
   	echo 'Sie haben eine ungültige Form der Kontaktaufnahme gewaehlt.';
   } elseif (($_POST['Kontaktart'] == 2) & (empty($emailTelefon))) {
   	echo 'Um per Telefon kontaktiert zu werden, geben Sie bitte Ihre Telefonnummer an.';
   } elseif (($_POST['Kontaktart'] == 3) & (empty($emailAdresse))) {
   	echo 'Um per Post kontaktiert zu werden, geben Sie bitte Ihre Adresse an.';
   }
   
   else {
   		
   	if (!empty($emailFrom)) {
   		$emailHeaders = 'From: "' . $emailName . '" <' . $emailFrom . '>';
   	} else {
   		$emailHeaders = 'From: "Webmaster" <webmaster@bla.com>';
   	}
   	
   	/* Email senden */
   	if (mail($emailTo, $emailSubject, $Body, $emailHeaders)) {
   		echo 'VIelen Dank für Ihr Interesse. Die Nachricht wurde gesendet!';
   	} else {
   		echo 'Beim Senden Ihrer Nachricht trat ein Fehler auf.<br>';
   		echo 'Bitte versuchen Sie es später noch einmal.';	
   	}
   }
   ?>
   </body>
 
Zurück