Autor |
Nachricht |
TeisT
Threadersteller
Dabei seit: 18.03.2003
Ort: -
Alter: 43
Geschlecht:
|
Verfasst Fr 13.04.2007 11:13
Titel Problem mit e-Mail-Formular |
|
|
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 11:38, insgesamt 1-mal bearbeitet
|
|
|
|
|
sahnemuh
Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 42
Geschlecht:
|
Verfasst Fr 13.04.2007 11:24
Titel
|
|
|
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?
|
|
|
|
|
Anzeige
|
|
|
TeisT
Threadersteller
Dabei seit: 18.03.2003
Ort: -
Alter: 43
Geschlecht:
|
Verfasst Fr 13.04.2007 11:38
Titel
|
|
|
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...
Zuletzt bearbeitet von TeisT am Fr 13.04.2007 11:38, insgesamt 1-mal bearbeitet
|
|
|
|
|
schachbrett
Dabei seit: 11.10.2006
Ort: Köln
Alter: -
Geschlecht:
|
Verfasst Fr 13.04.2007 11:59
Titel
|
|
|
Rechenknecht hat geschrieben: | output started at /www/htdocs/XY/XY/kontakt.php:38 |
|
|
|
|
|
TeisT
Threadersteller
Dabei seit: 18.03.2003
Ort: -
Alter: 43
Geschlecht:
|
Verfasst Fr 13.04.2007 12:06
Titel
|
|
|
Ok ich habe rausgenommen und jetzt geht es. Dann lassen wir das doch einfach mal raus, oder?
|
|
|
|
|
rob
Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht:
|
Verfasst Sa 14.04.2007 02:26
Titel
|
|
|
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.
|
|
|
|
|
|
|
|
Ähnliche Themen |
mail formular mit php
E-Mail Formular in HTML
Mail Formular - Textfeld
Flash - E-Mail-Formular
Suche Javascript für e-mail Formular
Wie E-Mail in einem Formular verschlüsseln (Formmailer)?
|
|