Kontaktformular
sani
- php
0 mhk0 sani0 der Flo(H)0 PHP_Dude0 sani
0 der Flo(H)
Hallo,
ich habe ein dringendes Problem. Ich habe ein sehr einfaches Kontaktformular auf einer html seite. Es funktioniert auch super.
Mein Problem: Wenn man eine email versand hat oder vergessen hat eine mail anzugeben erscheint ein einfacher Text, welcher in dem Php script angegeben ist. Jetzt soll sich aber nach versenden eine komplette neue html seite öffnen, eine die eben vom layou zum rest passt. ich denke ich muss dann irgendwie einen link in dem phphscript angeben. Aber ich bekomme es nicht hin.
Bitte, kann mir jemand helfen??
so sieht das script bisher aus:
<html>
<head>
<title>supertestseite</title>
</head>
<body bgcolor="#ffffff" marginheight=10 text="000000" link="#0000ff" vlink="#0000ff">
<center>
<table border=0 width=650>
<tr><td>
<?php
if (!$email_neu) {
print "<center><br><br><br><br><br><br>Sie müssen eine E-Mail-Adresse angeben!<br><br><br><a href=kontakt.html></a></center>";
} else {
print "<center><br><br><br><br><br><br><font face=Arial,Helvetica size=5>Ihre Anfrage wurde an uns weitergeleitet! Vielen Dank!<br><br><br><a href=kontakt.html><font face=Arial,Helvetica size=2>Zurück</font></a>";
$header="From:".$eMail."<".$eMail.">\n";
$header .= "Reply-To: ".$eMail."\n";
$header .= "Bcc: \n";
$header .= "X-Mailer: PHP/" . phpversion(). "\n";
$header .= "X-Sender-IP: $REMOTE_ADDR\n";
$header .= "Content-Type: text/html";
mail("info@nicoleborzi.de", "Kontaktformular nicoleborzi", "<br>\nanrede_neu:".$Frau."<br>\nanrede_neu:".$Herr."<br>\nvorname_neu:".$vorname_neu."<br>\nname_neu:".$name_neu."<br>\nfirma_neu".$firma_neu."<br>\nstrasse_neu:".$strasse_neu."<br>\nplz_neu:".$plz_neu."<br>\nort_neu:".$ort_neu."<br>\ntelefon_neu:".$telefon_neu."<br>\nemail_neu:".$email_neu."<br>\nweb_neu:".$web_neu."<br>\nnachricht_neu:".$nachricht_neu, $header);
}
?>
</td></tr>
</table>
</center>
</body>
</html>
wenn du festgestellt hast rufts du die header funktion auf
header("Location: http://www.example.com/");
diese leitet dich auf eine andere seite weiter.
mhk
wenn du festgestellt hast rufts du die header funktion auf
header("Location: http://www.example.com/");
diese leitet dich auf eine andere seite weiter.
mhk
das ist ja mein problem, wo genau muss diese header funktion stehen?
so geht es nicht?!:
<html>
<head>
<title>supertestseite</title>
</head>
<body bgcolor="#ffffff" marginheight=10 text="000000" link="#0000ff" vlink="#0000ff">
<center>
<table border=0 width=650>
<tr><td>
<?php
if (!$email_neu) {
print header("Location: http://www.example.com/");
} else {
print "<center><br><br><br><br><br><br><font face=Arial,Helvetica size=5>Ihre Anfrage wurde an uns weitergeleitet! Vielen Dank!<br><br><br><a href=kontakt.html><font face=Arial,Helvetica size=2>Zurück</font></a>";
$header="From:".$eMail."<".$eMail.">\n";
$header .= "Reply-To: ".$eMail."\n";
$header .= "Bcc: \n";
$header .= "X-Mailer: PHP/" . phpversion(). "\n";
$header .= "X-Sender-IP: $REMOTE_ADDR\n";
$header .= "Content-Type: text/html";
mail("info@nicoleborzi.de", "Kontaktformular nicoleborzi", "<br>\nFrau:".$Frau."<br>\nMann:".$Herr."<br>\nVorname:".$vorname_neu."<br>\nNachname:".$name_neu."<br>\nFirma".$firma_neu."<br>\nStrasse:".$strasse_neu."<br>\PLZ:".$plz_neu."<br>\nOrt:".$ort_neu."<br>\nTelefon:".$telefon_neu."<br>\neMail:".$email_neu."<br>\nWeb:".$web_neu."<br>\nNachricht:".$nachricht_neu, $header);
}
?>
</td></tr>
</table>
</center>
</body>
</html>
wie schon in meiner antwort vorher gepostet der link wo alles steht:
http://de.php.net/header
der header muss immer vor der ersten ausgabe stehen. Also vor <html> und vor irgendwelchen ausgaben von php.
Hi,
eine Headerangabe muss immer vor dem ersten Browseroutput stehen, also so:
<?php
if (!$email_neu) { header("Location: http://www.example.com/"); }
?>
<html>
<head>
<title>supertestseite</title>
</head>
<body bgcolor="#ffffff" marginheight=10 text="000000" link="#0000ff" vlink="#0000ff">
<center>
<table border=0 width=650>
<tr><td>
<?php
$header="From:".$eMail."<".$eMail.">\n";
$header .= "Reply-To: ".$eMail."\n";
$header .= "Bcc: \n";
$header .= "X-Mailer: PHP/" . phpversion(). "\n";
$header .= "X-Sender-IP: $REMOTE_ADDR\n";
$header .= "Content-Type: text/html";
mail("info@nicoleborzi.de", "Kontaktformular nicoleborzi", "<br>\nFrau:".$Frau."<br>\nMann:".$Herr."<br>\nVorname:".$vorname_neu."<br>\nNachname:".$name_neu."<br>\nFirma".$firma_neu."<br>\nStrasse:".$strasse_neu."<br>\PLZ:".$plz_neu."<br>\nOrt:".$ort_neu."<br>\nTelefon:".$telefon_neu."<br>\neMail:".$email_neu."<br>\nWeb:".$web_neu."<br>\nNachricht:".$nachricht_neu, $header);
print "<center><br><br><br><br><br><br><font face=Arial,Helvetica size=5>Ihre Anfrage wurde an uns weitergeleitet! Vielen Dank!<br><br><br><a href=kontakt.html><font face=Arial,Helvetica size=2>Zurück</font></a>";
?>
</td></tr>
</table>
</center>
</body>
</html>
Hi,
eine Headerangabe muss immer vor dem ersten Browseroutput stehen, also so:
<
Danke, das habe ich kapiert. Aber ich brauche header Angaben, einmal für eine Seite auf die man kommt wenn man die email vergessen hat, und einmal auf eine Seite wenn alles ok ist und die mail versandt wurde.
Ich habe folgendes probiert (erfolglos..): es meldet immer Fehler.
Was mache ich denn falsch??
?php
if (!$email_neu) { header("Location: http://www.antwort_n_ok.html/"); }
} else {
{ header("Location: http://www.antwort_ok.html/"); }
?>
<html>
<head>
<title>supertestseite</title>
</head>
<body bgcolor="#ffffff" marginheight=10 text="000000" link="#0000ff" vlink="#0000ff">
<center>
<table border=0 width=650>
<tr><td>
<?php
$header="From:".$eMail."<".$eMail.">\n";
$header .= "Reply-To: ".$eMail."\n";
$header .= "Bcc: \n";
$header .= "X-Mailer: PHP/" . phpversion(). "\n";
$header .= "X-Sender-IP: $REMOTE_ADDR\n";
$header .= "Content-Type: text/html";
mail("info@nicoleborzi.de", "Kontaktformular nicoleborzi", "<br>\nFrau:".$Frau."<br>\nMann:".$Herr."<br>\nVorname:".$vorname_neu."<br>\nNachname:".$name_neu."<br>\nFirma".$firma_neu."<br>\nStrasse:".$strasse_neu."<br>\PLZ:".$plz_neu."<br>\nOrt:".$ort_neu."<br>\nTelefon:".$telefon_neu."<br>\neMail:".$email_neu."<br>\nWeb:".$web_neu."<br>\nNachricht:".$nachricht_neu, $header);
print "<center><br><br><br><br><br><br><font face=Arial,Helvetica size=5>Ihre Anfrage wurde an uns weitergeleitet! Vielen Dank!<br><br><br><a href=kontakt.html><font face=Arial,Helvetica size=2>Zurück</font></a>";
?>
</td></tr>
</table>
</center>
</body>
</html>
Hallo sani,
ich versteh dein Problem nicht? Willst du einen redirect oder soll unter "Ihre Anfrage wurde an uns weitergeleitet! Vielen Dank!" noch ein text oder ganz andere infos?
Für einen redirect, schreib dein Scriipt an den Anfang deines Quelltextes und frag ab ob die mail versand wurde und ob die emailadresse eingegeben ist. Falls nicht, gib die Fehlerseite aus, falls versand, mach einen redirect mit header("Location: .http://..."). (mehr dazu unter http://de3.php.net/header)
Mal ganz abgesehen davon, fragst du nicht ab, ob mail() die mail wirklich gesendet hat oder ob dabei evtl. ein fehler aufgetreten ist!