mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 19.04.2024 06:03 Benutzername: Passwort: Auto-Login

Thema: Problem mit e-Mail-Formular vom 13.04.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Problem mit e-Mail-Formular
Autor Nachricht
TeisT
Threadersteller

Dabei seit: 18.03.2003
Ort: -
Alter: 43
Geschlecht: Männlich
Verfasst Fr 13.04.2007 12:13
Titel

Problem mit e-Mail-Formular

Antworten mit Zitat Zum Seitenanfang

Hi!

Ich muss in mein Layout ein fertiges Kontaktformular übernehmen:
Code:
 

<?

function FormChecker($postvars){

   #### KONFIGURATION #############

   $recepient = "meinemail@mail.de";
   $subject = "Anfrage von firma xy";

   $pflicht = array( // Pflichtfelder
                  'firma',
                  'email',
                  'name',
                  'plz',
                  'strasse'
               );

   ################################

   foreach($pflicht as $feld){
         if (!$postvars[$feld]) {
            $output[$feld] = "style='background:#FC9E9E'";
         }
   }

   $email = $postvars['email'];
   if ((false == strstr($email , "@")) || (false == strstr($email , "."))){
        $output['email'] = "style='background:#FC9E9E'";
   }

   foreach($postvars as $key=>$val){
         if (($key != 'x') and ($key != 'y')) {
            $body .= "$key: $val \n";
         }
   }

   if(!$output){
         echo $body;
         mail($recepient,
               $subject,
               $body,
               "From: ".$postvars['name']."<".$postvars['email'].">"
               ) or die("Fehler!");
   $output['status'] = 1;

    }
return $output;
}


if ($_POST){
    $output = FormChecker($_POST);
    if (1 == $output['status']) header('Location: http://xy.de/index.html');
   
}

?>

Soweit funktioniert das auch ganz gut. Das Formular verschickt sich. Ich bekomme jedoch im Browser eine Fehlermeldung und ich werde nicht an die Seite http://xy.de/index.html nicht weitergeleitet:

Code:
 Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/XY/XY/kontakt.php:38) in /www/htdocs/XY/XY/kontakt.php on line 53


Ich habe jetzt schon etwas gegoogelt aber die angegebenen Fehler kann ich nicht finden. Hat einer eine Idee? Muss ja irgendwie an der übergabe der URL liegen, oder?




Edith by maily
Titel gekürzt/geändert.


Zuletzt bearbeitet von airball am Fr 13.04.2007 12:38, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
sahnemuh

Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 42
Geschlecht: Männlich
Verfasst Fr 13.04.2007 12:24
Titel

Antworten mit Zitat Zum Seitenanfang

das heist du hast bereits einen header gesendet.. der header redirect in zeile 53
Code:
header('Location: http://xy.de/index.html');

kann deshalb nicht verarbeitet werden.

wo und wie bindest du das script denn ein?
  View user's profile Private Nachricht senden
Anzeige
Anzeige
TeisT
Threadersteller

Dabei seit: 18.03.2003
Ort: -
Alter: 43
Geschlecht: Männlich
Verfasst Fr 13.04.2007 12:38
Titel

Antworten mit Zitat Zum Seitenanfang

sahnemuh hat geschrieben:
das heist du hast bereits einen header gesendet.. der header redirect in zeile 53
Code:
header('Location: http://xy.de/index.html');

kann deshalb nicht verarbeitet werden.


Genau, das habe ich verstanden. Nachdem php code folgt dann sofort das eigentlich html-Dokument. Im Internet habe ich gelesen, dass ich dies mit exit; beenden soll aber dann geht gar nichts mehr... * Nee, nee, nee *


Zuletzt bearbeitet von TeisT am Fr 13.04.2007 12:38, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
schachbrett

Dabei seit: 11.10.2006
Ort: Köln
Alter: -
Geschlecht: Männlich
Verfasst Fr 13.04.2007 12:59
Titel

Antworten mit Zitat Zum Seitenanfang

Rechenknecht hat geschrieben:
output started at /www/htdocs/XY/XY/kontakt.php:38
  View user's profile Private Nachricht senden
TeisT
Threadersteller

Dabei seit: 18.03.2003
Ort: -
Alter: 43
Geschlecht: Männlich
Verfasst Fr 13.04.2007 13:06
Titel

Antworten mit Zitat Zum Seitenanfang

Ok ich habe
Code:
 echo $body;
rausgenommen und jetzt geht es. Dann lassen wir das doch einfach mal raus, oder? Au weia!
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht: Männlich
Verfasst Sa 14.04.2007 03:26
Titel

Antworten mit Zitat Zum Seitenanfang

Natürlich.
Sobald irgendeine Ausgabe an den Browser gesendet wir, werden auch Header verschickt.
Das ist das erste, was noch vor dem HTML-Dokument beim Browser ankommt.
Ist bereits eine Ausgabe erfolgt, kann der Aufruf der Header-Funktion nicht mehr funktionieren - die Header wurden ja bereits verschickt.

Naja, und das exit; nach dem Aufruf von header() solltest du da wieder rein setzen, damit das Script beendet wird.
Falls ein Browser nämlich nicht dem Redirect folgt, soll dein Script nicht weiter abgearbeitet werden.
  View user's profile Private Nachricht senden
 
Ähnliche Themen mail formular mit php
Mail Formular - Textfeld
Flash - E-Mail-Formular
E-Mail Formular in HTML
Suche Javascript für e-mail Formular
PDF Formular - beim Senden per Mail - PDF statt XML
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.