Moritz Rogalli: cannot modify header ... header already sent

Hallo!
ich habe ein Problem! Folgendes Script verschickt mails an die user in unserer newsletter datenbank. da ich timeouts vermeiden will, verschicke ich nur x (zum testen 30) mails auf einmal. für den fall, dass es mehr als 30 emailadressen sind, soll ein redirect ausgeführt werden. wenn ich das script ausführe, werden die ersten mails verschickt und sobald der redirect kommt, kommt der hinweis:

Warning: Cannot modify header information - headers already sent by (output started at C:\www\htdocs\v095162\newsletteradmin\schreiben.php:52) in C:\www\htdocs\v095162\inc\fallback.php on line 125

wobei zeile 52 in dem script schreiben.php die erste mail zeile ist.

hier noch ein auszug aus der schreiben.php, der rest wird erst gar nicht ausgeführt, wenn ich mails verschicken will.

if ($_GET['abschicken']=='true')
  {
    $db->query('select * from newsletter limit 0, 30');
    $i=0;
    while ($db->next_record())
    {
      $text=$text.'<br><br><br><br>Du erhältst diesen Newsletter,
      weil du in unserem E-Mail-Verteiler drinstehst. Wenn du keine
      weiteren Newsletter erhalten willst drücke bitte folgenden
      Link:<br><br><a href="http://www.jugendhaus-
      komma.de/newsletter_loeschen.php?email='.$db->f
      ('email').'&validierung='.$db->f('validierung').'">Keine
      weiteren Newsletter mehr erhalten</a>';
      mail($db->f('email'), $betreff, $text);
      $i++;
    }
    if ($i<30)
    {
 $Session->redirectTo('index.php?verschickt=true');
    }
    else
    {
 $Session->redirectTo('schreiben.php?abschicken='.$i);
    }
}

Kann mir da jemand weiterhelfen??

MfG

Moritz Rogalli

  1. Hallo,

    Warning: Cannot modify header information - headers already sent

    Bitte nicht schon wieder...
    http://www.dclp-faq.de/q/q-fehler-header.html

    mfg, Thomas

    1. Habe allerdings keinerlei Leerzeichen vor dem öffnenden <?php noch gebe ich irgendwas an den Browser aus. Ich wurschtel ja nur an Variablen rum und verschicke emails

      MfG

      Moritz Rógalli

      1. Hallo,

        Habe allerdings keinerlei Leerzeichen vor dem öffnenden <?php noch gebe ich irgendwas an den Browser aus.

        Die Datei beginnt also mit <?php und enthaelt
        vor der betreffenden Stelle keinen HTML-Bereich,
        kein echo, print und dergleichen?

        Guck mal in den Quelltext im Browser.
        Vielleicht siehst Du dort, was geschickt wurde.

        Es koennte z.B. auch eine Fehlermeldung sein, die
        automatisch ausgegeben wird...

        Wenn Du den Fehler nicht findest, stell das Skript
        als *.txt auf den Server und poste hier die URL.
        Glaskugeln macht keinen Spass.
        Bei Deinen kryptischen Klassen/Objekten ist es auch unmoeglich
        zu sagen, was Da zwischenzeitlich alles passiert...

        Gruesse,

        Thomas

  2. Heureka!!!

    Ich habs!!!

    Die Fehlermeldungen beim senden der mails haben zum senden des headers geführt!!

    also einfach die warnings aus und schon gehts...

    da hätt ich auch gleich draufkommen können.