ich habe ein problem mit meinem formmailer. bis jetzt sendet er noch keine email, aber das ist auch nicht das problem.
sondern ich wechsel über header("location: bestaetigung.inc.php") zu der bestätigungsseite, dass das formular versandt wurde. dadurch, dass ich das formular (formular.inc.php) in die seite include, steht vor der header() funktion html-code, was zum fehler "headers already sent" führt.
wie kann ich das problem lösen?
formular.inc.php:
<?php session_start(); if ( (isset($_REQUEST["do"]) ) && ( $_REQUEST["do"] == "check" ) ) { // Formulardaten wurden bereits versandt $error_msg = ""; if ( (isset( $_REQUEST["Wandflaeche"] )) && ($_REQUEST["Wandflaeche"] == "") && (isset( $_REQUEST["Grundflaeche"] )) && ($_REQUEST["Grundflaeche"] == "") ) { $error_msg .= "» Bitte geben Sie Wand- oder Grundfläche an<br>"; } if ( (isset( $_REQUEST["Zeitraum"] )) && ($_REQUEST["Zeitraum"] == "") ) { $error_msg .= "» Bitte geben Sie einen gewünschten Zeitraum an<br>"; } if ( !isset( $_REQUEST["Anrede"] )) { $error_msg .= "» Bitte wählen Sie eine Anrede aus<br>"; } if ( (isset( $_REQUEST["Name"] )) && ($_REQUEST["Name"] == "") ) { $error_msg .= "» Bitte geben Sie Ihren Namen an<br>"; } if ( ( (isset( $_REQUEST["Strasse"] )) && ($_REQUEST["Strasse"] == "") || (isset( $_REQUEST["PLZ"] )) && ($_REQUEST["PLZ"] == "") || (isset( $_REQUEST["Nr"] )) && ($_REQUEST["Nr"] == "") || (isset( $_REQUEST["Ort"] )) && ($_REQUEST["Ort"] == "") ) && (isset( $_REQUEST["email"] )) && ($_REQUEST["email"] == "") && (isset( $_REQUEST["Telefon"] )) && ($_REQUEST["Telefon"] == "") ) { $error_msg .= "» Bitte geben Sie mindestens eine vollständige Kontaktadresse an (Anschrift, e-mail oder Telefon)<br>"; } $_SESSION["Kategorie"] = $_REQUEST["Kategorie"]; $_SESSION["Wandflaeche"] = $_REQUEST["Wandflaeche"]; $_SESSION["Grundflache"] = $_REQUEST["Grundflaeche"]; $_SESSION["Zeitraum"] = $_REQUEST["Zeitraum"]; $_SESSION["Bemerkungen"] = $_REQUEST["Bemerkungen"]; $_SESSION["Anrede"] = $_REQUEST["Anrede"]; $_SESSION["Name"] = $_REQUEST["Name"]; $_SESSION["Strasse"] = $_REQUEST["Strasse"]; $_SESSION["Nr"] = $_REQUEST["Nr"]; $_SESSION["PLZ"] = $_REQUEST["PLZ"]; $_SESSION["Ort"] = $_REQUEST["Ort"]; $_SESSION["email"] = $_REQUEST["email"]; $_SESSION["Telefon"] = $_REQUEST["Telefon"]; // alles o.k. - dann ausgabe.php aufrufen und skript beenden if ( $error_msg == "" ) { header("Location: bestaetigung.inc.php"); die(); } } // Formular wird zum ersten mal aufgerufen ?> <!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=iso-8859-1" /> <title>Unbenanntes Dokument</title> </head> <body> <p style="color:#990000"><b><?php echo $error_msg; ?></b></p> <form name="anfrage" action="<?php $_SERVER['PHP_SELF']; ?>" method="post"> <!-- Hier die eigentlichen Formularfelder eintragen. --> <table width="400" border="0"> <b>Anliegen<hr /></b> <tr><td><input type="hidden" name="do" value="check" /> <!-- hidden-feld zum überprüfen, ob formulardaten bereits gesendet wurden --> <tr> <td width="100">Kategorie:</td> <td> <select name="Kategorie[]"> <option>Fassade</option> <option>komplette Wohnung</option> <option>Zimmer</option> <option>Treppenhaus</option> <option>Lackierung</option> </select> </td> </tr> <tr> <td>Wandfläche:</td> <td><input value="<?php echo $_REQUEST["Wandflaeche"]; ?>" type="text" style="margin-right:5px" name="Wandflaeche" />m²</td> </tr> <tr> <td>Grundfläche:</td> <td><input value="<?php echo $_REQUEST["Grundflaeche"]; ?>" type="text" style="margin-right:5px" name="Grundflaeche" />m²</td> </tr> <tr> <td>gewüschter<br />Zeitraum:</td> <td><input value="<?php echo $_REQUEST["Zeitraum"]; ?>" type="text" name="Zeitraum" /></td> </tr> <tr> <td style="vertical-align:top">Bemerkungen:</td> <td><textarea name="Bemerkungen" rows="5" cols="30"><?php echo $_REQUEST["Bemerkungen"]; ?></textarea></td> </tr> </table><br /><br /> <table width="400" border="0"> <b>Kontakt<hr /></b> <tr> <td width="100"></td> <td> <p> <label><input <?php if ( (isset($_REQUEST["Anrede"]) ) && ( $_REQUEST["Anrede"] == "Herr" ) ) { echo "checked='checked'"; } ?> type="radio" name="Anrede" value="Herr" />Herr</label> <label><input <?php if ( (isset($_REQUEST["Anrede"]) ) && ( $_REQUEST["Anrede"] == "Frau" ) ) { echo "checked='checked'"; } ?> type="radio" name="Anrede" value="Frau" />Frau</label> </p> </td> </tr> <tr> <td>Name:</td> <td><input value="<?php echo $_REQUEST["Name"]; ?>" type="text" name="Name" /></td> </tr> <tr> <td>Vorname:</td> <td><input value="<?php echo $_REQUEST["Vorname"]; ?>" type="text" name="Vorname" /></td> </tr> <tr> <td>Straße/Nr.:</td> <td><input value="<?php echo $_REQUEST["Strasse"]; ?>" type="text" name="Strasse" style="margin-right:10px" size="29" /><input value="<?php echo $_REQUEST["Nr"]; ?>" type="text" name="Nr" maxlength="5" size="3" /></td> </tr> <tr> <td>PLZ/Ort:</td> <td><input value="<?php echo $_REQUEST["PLZ"]; ?>" type="text" name="PLZ" maxlength="5" style="margin-right:10px" size="3" /><input value="<?php echo $_REQUEST["Ort"]; ?>" type="text" name="Ort" /></td> </tr> <tr><td> </td></tr> <tr> <td>e-Mail:</td> <td><input value="<?php echo $_REQUEST["email"]; ?>" size="30" type="text" name="email" /></td> </tr> <tr> <td>Telefon:</td> <td><input value="<?php echo $_REQUEST["Telefon"]; ?>" name="Telefon" type="text" /> </td> </tr> </table><br /><br /> <input type="submit" value="Anfrage senden" /> </form> </body> </html>
hier wird sie included:
<!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=iso-8859-1" /> <link rel="stylesheet" type="text/css" href="css/base.css" /> <title></title> </head> <body> <div class="plus"> </div> <div class="content"> <p id="navigator"><b>Sie befinden sich hier: <a href="iFOUR.php" class="navigator">Auftragsanfrage</a></b></p> <p id="heading">Ihr maßgeschneidertes Angebot</p> <div id="content"> Füllen Sie die nachstehenden Felder bitte möglichst genau aus damit wir Ihnen ein passendes Angebot erstellen können. <br />Achten Sie bitte darauf mindestens eine Kontaktadresse anzugeben.<br /><br /> <?php include('formmailer_self/formular.inc.php') ?> </div> </div> </body> </html>
die bestätigungsseite bestaetigung.inc.php:
<?php session_start(); ?> <!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=iso-8859-1" /> <title>Unbenanntes Dokument</title> </head> <body> Ihre Anfrage wurde an uns übermittelt <?php echo $_SESSION["Anrede"] . " " . $_SESSION["Name"] . "!"; ?> <br /><br /> Vielen Dank. </body> </html>
Dieser Beitrag wurde von felisse.courage bearbeitet: 16. Januar 2007 - 00:59