[GastForen Programmierung/Entwicklung PHP und MySQL PHP Formular - Weiterleitung auf Dankeseite geht nicht - Ich finde den Fehler nicht!

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

PHP Formular - Weiterleitung auf Dankeseite geht nicht - Ich finde den Fehler nicht!

homeedition
Beiträge gesamt: 198

10. Nov 2012, 11:22
Beitrag # 1 von 4
Bewertung:
(6522 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ich habe ein PHP Formular, nach dem Absenden soll eine Dankeseite geladen werden. Die Emaildaten werden zwar übertragen aber es wird nicht zur Dankeseite weitergeleitet.

Ich finde den Fehler irgendwie nicht, ich hoffe es kann mir jemandand weiterhelfen.
Code
<?php 
$zieladresse = 'meineamail@web.de';

$absenderadresse = 'info@meineemail.de';

$absendername = 'formular';

$betreff = 'formular';

$urlDankeSeite = 'http://www.meineseite.de/danke.html';

$trenner = ":\t";

if ($_SERVER['REQUEST_METHOD'] === "POST") {

$header = array();
$header[] = "From: ".mb_encode_mimeheader($absendername, "utf-8", "Q")." <".$absenderadresse.">";
$header[] = "MIME-Version: 1.0";
$header[] = "Content-type: text/plain; charset=utf-8";
$header[] = "Content-transfer-encoding: 8bit";

$mailtext = "";

foreach ($_POST as $name => $wert) {
if (is_array($wert)) {
foreach ($wert as $einzelwert) {
$mailtext .= $name.$trenner.$einzelwert."\n";
}
} else {
$mailtext .= $name.$trenner.$wert."\n";
}
}

mail(
$zieladresse,
mb_encode_mimeheader($betreff, "utf-8", "Q"),
$mailtext,
implode("\n", $header)
) or die("Die Mail konnte nicht versendet werden.");
header("Location: $urlDankeSeite");
exit;
header("Content-type: text/html; charset=utf-8");
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Unbenanntes Dokument</title>
<style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}

#container {
position: relative;
width: 968px;
text-align: left;
visibility: visible;
margin-top: 0px;
margin-right: auto;
margin-bottom: 0;
margin-left: auto;
height: 604px;
background-image: url(images/hg_hintergrund.jpg);
background-repeat: no-repeat;
}
#texbox_1 {
position: absolute;
width: 586px;
z-index: 2;
left: 353px;
top: 182px;
height: 213px;
}
#texbox_2 {
position:absolute;
width:177px;
height:243px;
z-index:2;
left: 777px;
top: 165px;
}
.text_1 {
font-family: Georgia;
font-size:0.75em;
line-height: 17px;
color: #960;
}
.text_1_kursiv_bold {
font-family: Georgia;
font-size: 12px;
font-style: italic;
line-height: 17px;
font-weight: bold;
font-variant: normal;
color: #960;
}

.text_2_kursiv_bold {
font-family: Georgia;
font-size: 12px;
font-style: italic;
line-height: 10px;
font-weight: bold;
font-variant: normal;
color: #960;
}

#newsletter {
position: absolute;
margin-top: 400px;
margin-left: 191px;
line-height: 20px;
left: 548px;
width: 223px;
height: 59px;
top: -365px;
border: 0px;
}


-->
</style></head>

<body>
<div class="box_inhalt" id="container">
<div id="newsletter"><a href="mailto:meineemail@web.de?subject=eintragen" target="_new" ><img src="images/leer_btn.png" width="212" height="62" border="0" /></a>

</div>
<div class="text_1" id="texbox_1">
<form id="form1" name="form1" method="post">
Reservieren Sie ganz einfach und bequem per E-Mail einen Tisch für sich und Ihre Familie,<br />
Ihre Freunde oder Ihre Geschäftspartner. Wir freuen uns auf Ihren Besuch!<br />
<br />
<strong>Reservierungsformular</strong><br />
<br />
<table border="0" cellspacing="3" cellpadding="0">
<tr>
<td rowspan="2" align="left" valign="top"><label for="name">Name:</label>
<br />
<input name="name" type="text" id="name" size="20" />
<br />
<label for="vorname">Vorname:</label>
<br />
<input name="vorname" type="text" id="vorname" size="20" />
<br />
<label for="email">E-Mail:</label>
<br />
<input name="email" type="text" id="email" size="20" /></td>
<td rowspan="2" align="left" valign="top"><img src="images/leer_btn.png" width="30" height="41" /></td>
<td rowspan="2" align="left" valign="top"><label for="personenzahl">Personenzahl:</label>
<br />
<input name="personenzahl" type="text" id="personenzahl" size="15" />
<br />
<label for="datum">Datum:</label>
<br />
<input name="datum" type="text" id="datum" size="15" />
<br />
<label for="uhrzeit">Uhrzeit:</label>
<br />
<input name="uhrzeit" type="text" id="uhrzeit" size="15" /></td>
<td align="left" valign="top"><img src="images/leer_btn.png" alt="" width="30" height="41" /></td>
<td align="left" valign="top"><label for="besonderheiten">Besonderheiten:</label>
<br />
<textarea name="besonderheiten" id="besonderheiten" cols="25" rows="3"></textarea>
<br /></td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td>
<td align="right" valign="bottom"><input type="submit" name="submit" id="submit" value="Senden" /></td>
</tr>
</table>
</form>
</div>
</div>
</body>
</html>


Kann mir jemand erklären wo der Fehler ist?

Vielen lieben Dank :)
X

PHP Formular - Weiterleitung auf Dankeseite geht nicht - Ich finde den Fehler nicht!

homeedition
Beiträge gesamt: 198

10. Nov 2012, 13:38
Beitrag # 2 von 4
Beitrag ID: #503987
Bewertung:
(6493 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich habe da eine Vermutung. Die Formularseite ist includiert:
Code
<?php 
// Inhaltsseiten festlegen
...
if(isset($_GET['action']) && $_GET['action']=="reservierung") include ("reservierung.php");
if(!isset($_GET['action'])) include ("home.php");?>
</div>


Könnte es damit zusammenhängen?

Danke :)


als Antwort auf: [#503984]

PHP Formular - Weiterleitung auf Dankeseite geht nicht - Ich finde den Fehler nicht!

homeedition
Beiträge gesamt: 198

10. Nov 2012, 14:15
Beitrag # 3 von 4
Beitrag ID: #503988
Bewertung:
(6479 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das error_reporting zeigt folgenden Fehler:
Code
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\meineseite\index.php:152) in C:\xampp\htdocs\meineseite\reservierung.php on line 43 


In der index.php ab zeile 152 sind die inhaltsseiten, wie im Beitrag zuvor beschrieben, festgelegt.

Wenn ich die reservierung.php direkt aufrufe funktioniert die Weiterleitung.

Hat also doch was mi der index.php zu tun, oder?
Kann man den Fehler irgendwie beheben?


als Antwort auf: [#503987]

PHP Formular - Weiterleitung auf Dankeseite geht nicht - Ich finde den Fehler nicht!

homeedition
Beiträge gesamt: 198

11. Nov 2012, 12:21
Beitrag # 4 von 4
Beitrag ID: #503995
Bewertung:
(6416 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Es ist viel einfacher als ich dachte :)

Ich habe einfach den oberen PHP Teil der Formular PHP in eine neue Datei ausgelagert (mail.php):
Code
<?php 

$zieladresse = 'homeedition@web.de';

$absenderadresse = 'homeedition@web.de';

$absendername = 'Homeedition';

$betreff = 'Homeedition';

$urlDankeSeite = 'danke.php';

$trenner = ":\t";

if ($_SERVER['REQUEST_METHOD'] === "POST") {

$header = array();
$header[] = "From: ".mb_encode_mimeheader($absendername, "utf-8", "Q")." <".$absenderadresse.">";
$header[] = "MIME-Version: 1.0";
$header[] = "Content-type: text/plain; charset=utf-8";
$header[] = "Content-transfer-encoding: 8bit";

$mailtext = "";

foreach ($_POST as $name => $wert) {
if (is_array($wert)) {
foreach ($wert as $einzelwert) {
$mailtext .= $name.$trenner.$einzelwert."\n";
}
} else {
$mailtext .= $name.$trenner.$wert."\n";
}
}

mail(
$zieladresse,
mb_encode_mimeheader($betreff, "utf-8", "Q"),
$mailtext,
implode("\n", $header)
) or die("Die Mail konnte nicht versendet werden.");
header("Location: $urlDankeSeite");
exit;
header("Content-type: text/html; charset=utf-8");
}
?>


und per
Code
... action="mailer.php" 

darauf verwiesen.

Jetzt klappt alles wunderbar :)


als Antwort auf: [#503988]
X