mike7050
Goto Top

Kontaktformular

Hallo,

habe mit PHP ein Kontaktformular erstellt, nur leider bekomme ich folgende Fehlermeldung im Mozilla Firefox:

zurück und füllen Sie alle Felder aus!"; } else { $Mailnachricht = "Sie haben folgende 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 Seite."; } ?>

Das PHP Scrip sieht so aus:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  
"http://www.w3.org/TR/html4/loose.dtd">  
<html>
<head>
<title>Kontaktformular mit PHP</title>
</head>
<body>
<?php

$Empfaenger = "info@irgendwas.de";  

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 folgende 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>.";  
}

?>
</body>
</html> 
Woran kann es liegen?

MFG

Mike

Content-Key: 122797

Url: https://administrator.de/contentid/122797

Printed on: April 26, 2024 at 20:04 o'clock

Member: Cubic83
Cubic83 Aug 15, 2009 at 08:00:55 (UTC)
Goto Top
Hallo,

versuch doch mal folgende Schreibweise:

Statt: 

echo"Bitte gehen Sie <a href=\"javascript:history.back();\">zurück</a> und füllen Sie alle Felder aus!";  

Jetzt: 

echo 'Bitte gehen Sie <a href="javascript:history.back();">zurück</a> und füllen Sie alle Felder aus';  

Und bitte: Pack deinen Code in ein Code Tag (Setze code vor und /code mit < hinter deinen Code). Da kriegt man ja Augenkrebs ;)

mfG
Member: Gilneas
Gilneas Aug 15, 2009 at 08:01:52 (UTC)
Goto Top
Zwei Dinge fallen mir auf:

Hier ist das Leerzeichen falsch gesetzt
<!DOCTYPE HTML PUBLIC " -W3CDTD HTML 4.01 Transitional EN"
"http:www.w3.org/TR/html4/loose.dtd">

Hier würde ich die Gänsefüßchen anders setzen:
echo 'Bitte gehen Sie <a href="javascript:history.back();">zurück</a> und füllen Sie alle Felder aus!';
Member: mike7050
mike7050 Aug 15, 2009 at 08:11:50 (UTC)
Goto Top
Hi,

okay werde es später gleich testen!

Danke vorerst face-smile
Member: dog
dog Aug 15, 2009 at 16:04:34 (UTC)
Goto Top
Wenn dass:

zurück und füllen Sie alle Felder aus!"; } else { $Mailnachricht = "Sie haben folgende 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 Seite."; } ?>

deine Fehlermeldung ist, ist das ganze relativ leicht: Dein Webserver interpretiert den PHP-Code nicht.
Das kann passieren, wenn du die Datei mit .html statt .php abgespeichert hast oder aber, wenn der Webserver PHP gar nicht kann.

Grüße

Max
Member: Gilneas
Gilneas Aug 16, 2009 at 17:30:30 (UTC)
Goto Top
@dog:
Nein, das kann nicht sein, denn sonst müsste er auch die voranstehenden Befehle ausgeben.
Member: dog
dog Aug 16, 2009 at 19:48:01 (UTC)
Goto Top
Hättest du es einfach mal ausprobiert, hättest du gesehen, dass ich recht habe:
6dc5d31a0bbcd3139375d6eec395a194-bild_7

<?php beginnt mit < und wird durch Sanitization vom Browser als Tag betrachtet.
Der wiederum endet beim ersten <a>-Tag und da beginnt auch die Ausgabe...

Hast du ein Glück, dass ich nicht der Forums-Koleriker bin face-wink

Grüße

Max
Member: Gilneas
Gilneas Aug 16, 2009 at 20:03:39 (UTC)
Goto Top
@ dog:
U r right. Da haste mich etz erwischt face-wink. Das kommt davon, wenn man nur drüber fliegt und nicht genau liest.

Logisch, IE z.B. ignoriert ja unbekannte Tags einfach, damit ist das die sogar die wahrscheinlichste Lösung, da das script bei mir, sogar mit dem fehlerhaften Doctype funktioniert.

/edit:
Oh je, hier gibts auch Forumskoleriker?