Statt echo ausgeben weiterleiten?

Ich_halt224

Erfahrenes Mitglied
So dala,

habe jetzt endlich ein Kontaktformular so wie ich es mir vorstelle, dieses besteht aus zwei Dateien, die eine in der das Formular ist und die andere, die die Eingaben auswertet und dann verschickt.

Hier mal der Code von der zweiten Datei die alles auswertet:

PHP:
<html>
<head>
<title>Kontaktformular mit PHP</title>
</head>
<body>
<?php

$Empfaenger = "Webmasta@online.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>


Wie man sehen kann, gibt der Code ein echo aus, je nachdem ob es funktioniert hat oder nicht.
Statt dem Echo hätte ich es aber lieber, dass der Benutzer auf eine andere Seite weiter geleitet wird, kann mir jemand sagen, wie das geht?


Danke und liebe Grüße

Tim
 
Mhhhh also muss ich eigentlich nur

PHP:
 echo"Vielen Dank für Ihre eMail!";

duch

PHP:
header("Location: http://www.meinewebsite.com/");

ersetzen?


Wäre das so dann richtig?

PHP:
$Mailnachricht .= "\nDatum/Zeit: "; 
      $Mailnachricht .= date("d.m.Y H:i:s"); 
      $Mailbetreff = "Kontakt: "; 
      $Mailbetreff .= $_REQUEST['Betreff']; 
      mail($Empfaenger, $Mailbetreff, $Mailnachricht, "From: ".$_REQUEST['Email']); 
      header("Location: http://www.example.com/");



Liebe Grüße

Tim
 
Klappt leider nicht, bekomme dann diese Fehlermeldung :(

PHP:
Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/v149105/webrad/kontaktformular-auswerten.php:6) in /www/htdocs/v149105/webrad/kontaktformular-auswerten.php on line 31
 
Sorry aber daraus ersehe ich leider gar nichts. :confused:

Du hast mir doch gesagt, dass es so richtig wäre, kannst du mir nicht einfach sagen, wo der Fehler liegt?


Danke
 
Der wichtige Punkt ist folgender:
PHP.net hat gesagt.:
Die Funktionen header(), setcookie() und die Session-Funktionen müssen Header dem Output-Stream hinzufügen. Header können aber nur gesendet werden, wenn Sie vor allen anderen Daten gesendet werden.

Um dieses zu umgehen, kann man die Ausgabe steuern. Du findest sicher auch hier im Forum noch Dutzende von Threads dazu...
 
Zurück