Cannot modify header information - headers already sent by

  • Hallo

    Erstmal möchte ich vorweg loswerden das ich noch ein Anfänger in sachen Php bin,

    nun mal zu meinem Problem was ich leider alleine nicht bewältigt bekomme,

    und zwar geht es um einen Einfachen PHP-Formmailer, ich habe mir diesen Formmailer hier herausgenommen http://aktuell.de.selfhtml.org/artikel/php/form-mail/index.htm und dann in meine Internetseite eingebunden, (hab das natürlich noch bearbeitet)

    Die Funktion dieses Formmailers funktioniert an und für sich (die emails kommen auch bei mir an)
    nur habe ich 2 Probleme,

    das 1. Problem, jedes mal wenn ich auf "Senden" klicke kommt dann eine Fehlermeldung die lautet :


    Warning: Cannot modify header information - headers already sent by (output started at /home/www/nc16767/html/Core.php:7) in /home/www/nc16767/html/Core.php on line 164

    ich habe schon auf etlichen Seiten rumgegoogelt und habe mich an diese Anleitungen gehalten, aber ich kriege diesen Fehler einfach nicht weg

    Hier mal die 2 Zeilen wo ein Fehler drinn sein soll

    Zeile:

    6<linkrel="stylesheet"href="../Neuer%20Ordner%20(2)/style.css"type="text/css">
    7<style type="text/css">
    8<!--
    .
    .
    .
    163 or die("Die Mail konnte nicht versendet werden.");
    164 header("Location: http://test123.de");
    165 exit;

    (Bei Location steht natürlich die richtige internetadresse, da ich aber keinerlei werbung machen will habe ich den Link verändert)


    Ich habe schon etliches versucht, verschoben, geändert etc. aber ich habe immer den Fehler bei <Style> und <Header>


    Nun zu meinem 2. Problem

    und zwar habe ich einen Automailer bei meinem Provider eingerichtet, (auf diese Email adresse verweist auch dieser Formmailer) nur habe ich nun das Problem das wenn ich Manuell schreibe der Automailer auch 100% funktioniert (es kommt nur eine bestätigung über eingang der Mail)
    aber wenn ich mit dem Automailer schreibe wird keine Automailer email auf die Adresse die man eingibt als versender geschickt..


    Ich hoffe ich kann mit euch das Problem lösen :)

  • du musst header() aufrufen, bevor du eine ausgabe machst.
    Sonst kannst du die header nicht neu schicken.

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • Sitz irgendwie aufm schlauch oder so..

    aber was genau meist du damit?
    soll der Header an 1. Stelle?

  • nein
    schau

    du hast einen Teil (oder den gesamten) HTML-Code ausgegeben.
    Wenn du dies tust, DARFST DU KEINE neuen Header schicken (Neue Location, Cookies, etc...)

    Das muss alles passieren, BEVOR du irgendwo eine Ausgabe hast.
    also ein "echo" oder andere Ausgabe-Formen.

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • Hi Soul,
    was Dodo damit meint, ist die besonderheit der php Funktion - header() , diese wirft dir einen Fehler , wie Dodo bereits sagte bei jeder Ausgabe , die du vor der Funktion machst.

    Konkret musst du also dein Script so basteln, dass du den php-Teil, der die Mail versendet vor dem gesamten htlm Teil zu stellen, was du sowieso tun solltest.

    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.
    [Blockierte Grafik: http://www.snippr.de/social/img/logo.png]
    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  • So..

    ich habe jetzt nochmal das ganze gedöns durchforstet, aber ich komm da einfach nicht auf den Punkt, ich poste jetzt mal die ganze Kiste hierher, wär sehr hilfreich wenn du mir den Fehler mal anpinnen könnetst, ich find hier leider echt keinen.

    <html>
    <HEAD>
    <meta http-equiv=Content-Type content="text/html; charset=utf-8">
    <TITLE>Test123</TITLE>
    <link rel="stylesheet" href="../Neuer%20Ordner%20(2)/style.css" type="text/css">

    <style type="text/css">
    <!--
    A { color: #C0C0C0; font-weight:bold; text-decoration: none; }
    A:link { color: #C0C0C0; font-weight:bold; text-decoration: none; }
    A:visited { color: #C0C0C0; font-weight:bold; text-decoration: none; }
    A:active { color: #358391; font-weight:bold; text-decoration: none; }
    A:hover { color: #358391; font-weight:bold; text-decoration: none; }

    body, td, tr{
    font-family: verdana;
    color:#FFFFFF;
    font-size:11;
    font-weight:normal;
    }

    //-->
    .style1 {
    font-size: xx-large;
    }
    .style2 {
    text-align: center;
    }
    .style3 {
    font-weight: bold;
    color: #C0C0C0;
    }
    .style4 {
    font-size: 40pt;
    }
    </style>

    <script language="JavaScript" type="text/JavaScript" src="../Neuer%20Ordner%20(2)/java/javascript.js"></script>
    <SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript" SRC="../Neuer%20Ordner%20(2)/java/base.js"></SCRIPT>
    <script language="JavaScript" src="../Neuer%20Ordner%20(2)/java/tabel.js" type="text/javascript"></script>
    </HEAD>
    <BODY background="img/bg.gif" bgcolor="#202020" topmargin="0" leftmargin="0">

    <center>
    <table bgcolor="#202020" width="776" height="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td width="3" bgcolor="#FFFFFF"></td>
    <td width="770" valign="top">

    <table bgcolor="#202020" width="770" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td height="32" align="right" valign="middle">Kontakt: <a href="mailto:test123">
    test123</a> </td>
    </tr>
    <tr>
    <td height="132" valign="middle" background="img/headerback.jpg" class="style2"><span class="style4">Test123</span>
    </td>
    </tr>
    <tr>
    <td height="10"></td>
    </tr>
    <tr>
    <td height="32" align="left" valign="middle" background="img/bluebg.gif">Home<span class="style3"></span>
    |
    Zimmervermietung<span class="style3"></span>
    |
    Boxen<span class="style3"></span> |
    Wanderroute<span class="style3"></span> | <a href="#">
    Über uns<span class="style3"></span></a> | <a href="Core.php">Kontakt /
    Reservierungen</a><span class="style3"></span></td>
    </tr>
    </table>
    <table bgcolor="#464646" width="770" height="350" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td width="222" bgcolor="#202020" align="left" valign="top">
    <table width="222" border="0" cellspacing="0" cellpadding="0" bgcolor="#202020">
    <tr>
    <td height="24" width="222" valign=middle class="style2"> Menü</td>
    </tr>
    <tr>
    <td width="222" height=3 bgcolor="#ffffff"></td>
    </tr>
    <tr>
    <td height="24" width="222" valign=middle onMouseOver="javascript:taust(this,'#0F363F')" onMouseOut="javascript:taust(this,'#202020')">

    » Zurück<span class="style3"></span></td>
    </tr>
    <tr>
    <td width="222" height=3 bgcolor="#ffffff"></td>
    </tr>
    <tr>
    <td height="24" width="222" valign=middle onMouseOver="javascript:taust(this,'#0F363F')" onMouseOut="javascript:taust(this,'#202020')">
    <a href="#">
    <span class="style3"></span></a></td>
    </tr>
    <tr>
    <td width="222" height=3 bgcolor="#ffffff"></td>
    </tr>
    <tr>
    <td height="24" width="222" valign=middle onMouseOver="javascript:taust(this,'#0F363F')" onMouseOut="javascript:taust(this,'#202020')">

    http://index.html<span class="style3"></span></td>
    </tr>
    <tr>
    <td width="222" height=3 bgcolor="#ffffff"></td>
    </tr>
    <tr>
    <td height="24" width="222" valign=middle onMouseOver="javascript:taust(this,'#0F363F')" onMouseOut="javascript:taust(this,'#202020')"></td>
    </tr>
    <tr>
    <td width="222" height=3 bgcolor="#ffffff"></td>
    </tr>
    <tr>
    <td height="24" width="222" valign=middle onMouseOver="javascript:taust(this,'#0F363F')" onMouseOut="javascript:taust(this,'#202020')"></td>
    </tr>
    <tr>
    <td width="222" height=3 bgcolor="#ffffff"></td>
    </tr>
    </table>
    </td>
    <td width="3" bgcolor="#FFFFFF" align="right" valign="top"></td>
    <td width="525" valign="top" class="style2">


    Kontakt und Reservierungen:

    Test123

    Test1123
    Test123

    Telefon: 123
    Handy
    1 :123
    Handy 2 : 123

    Email :
    [email='test123']test123[/email]

    <head>
    <title>Antrags Formular</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <html>
    <body>
    <h1>Antrags Formular</h1>
    <form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">
    <dl>
    <dt>Vollständiger Name:</dt>
    <dd><input type="text" name="Versender" /></dd>
    <dt>Ihre E-Mail:</dt>
    <dd><input type="text" name="E-Mail" /></dd>
    <dt>Sie wünschen eine(n):</dt>
    <dd><input type="checkbox" name="Wünscht eine[]" value="Nachfrage" />Nachfrage <input type="checkbox" name="Wünscht einen []" value="Auftrag" />Auftrag</dd>
    <dt>Sie sind:</dt>
    <dd><input type="radio" name="Geschlecht" value="Männlich" />Männlich <input type="radio" name="Geschlecht" value="Weiblich" />Weiblich</dd>
    <dt>Interessen:</dt>
    <dd><select name="Interessen"><option value="Zimmerreservierung">
    Zimmerreservierung</option><option value="Boxen">Boxen</option><option value="Koppeln">
    Koppeln</option><option value="Wandern">Wandern</option><option value="Sonstiges">
    Sonstiges</option></select></dd>
    <dt>Bemerkungen:</dt>
    <dd><textarea name="Bemerkungen" rows="3" cols="20">Bemerkungen</textarea></dd>
    </dl>


    <input type="submit" value="Senden" />
    <input type="reset" value="Zurücksetzen" />
    </p>
    </form>
    </body>
    </html>


    </td>
    </tr>
    </table>
    <table bgcolor="#202020" width="770" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td height="32" width="30" align="left" valign="middle" background="img/bluebg.gif"></td>
    <td height="32" width="740" align="right" valign="middle" background="img/bluebg.gif">
    © 2008 - M.S. </td>
    </tr>
    </table>
    </td>
    <td width="3" bgcolor="#FFFFFF"></td>
    </tr>
    </table>
    </center>
    <div style="font-size: 0.8em; text-align: center; margin-top: 1.0em; margin-bottom: 1.0em;">
    </div>
    </body>
    </HTML>

    <?php
    $strEmpfaenger = 'soulreaver2002@gmx.de';
    $strFrom = '"test123" <info@test123>';
    $strSubject = 'test123';
    $strReturnhtml = 'test123';
    $strDelimiter = ":\t";
    if($_POST)
    {
    $strMailtext = "";
    while(list($strName,$value) = each($_POST))
    {
    if(is_array($value))
    {
    foreach($value as $value_array)
    {
    $strMailtext .= $strName.$strDelimiter.$value_array."\n";
    }
    }
    else
    {
    $strMailtext .= $strName.$strDelimiter.$value."\n";
    }
    }
    if(get_magic_quotes_gpc())
    {
    $strMailtext = stripslashes($strMailtext);
    }
    mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
    or die("Die Mail konnte nicht versendet werden.");
    header("header: http://www.google.de");
    exit;
    }
    ?>

  • Halleluja, ist das so schwer??? Der komplette PHP-Teil muss vor dem HTML-Teil stehen!

    Info

  • So ich habs hinbekommen, dankeschön schonmal .

    Nun habe ich aber noch ein Problem und zwar mit diesem Automailer

    Wenn ich manuell eine Email an die Email adresse schicke bekomme ich auch prompt die antwort vom automailer

    Nur wenn ich über diesen Formmailer eine Mail schicke kommt leider keine Email vom Automailer an die Email adresse die eingegeben worden ist..
    gibt es da eine lösung für? ich danke euch schonmal :)