header-problem

DivDax

Erfahrenes Mitglied
Hallo!

Ich bin gerade an einem kleinen Newsletterscript und nun habe ich ein kleines Problem, dass ich einfach nicht gelöst bekomme.
Und zwar kommt folgender Fehler beim Aufruf des Scriptes:
Code:
Warning: Cannot modify header information - headers already sent by (output started at /home/www/web2/html/newsletter/index.php:25) in /home/www/web2/html/newsletter/index.php on line 59

Hier mein bisheriger PHP-Source:
PHP:
  if(!empty($_POST[doSubmit])) {
    if($_POST[subject] != "" && $_POST[message] != "") {
	  // save message
	  $sql = mysql_query("INSERT INTO newsletter VALUES ('0','".$_POST[subject]."','".$_POST[message]."','".time()."')");
	  $newsletterid = mysql_insert_id();
	  header("location: index.php?newsid=$newsletterid&start=0");
	}
  }
  if($_GET[newsid] != "" && $_GET[start] != "") {
  	echo "<pre>";
    //get the news to send
    $sql = mysql_query("SELECT * FROM newsletter WHERE (id = '".$_GET[newsid]."')");
	$news = mysql_fetch_array($sql);

    $sql = mysql_query("SELECT COUNT(email) AS gesamt FROM user");
    $emails = mysql_fetch_array($sql);
	
	// send email(s)
	$start = $_GET[start];
	$end = $start+SEND_PER_RUN;
	
	$sql = mysql_query("SELECT * FROM user ORDER BY userid ASC LIMIT $start,$end");
	$num_emails = mysql_num_rows($sql);
	echo "Gesendet: ".$num_emails."/".$emails[gesamt]."<br><br>";
	for($i = 0; $i < $num_emails; $i++) {
	  $data = mysql_fetch_array($sql);
	  
	  echo $data[userid]." - ";
	  echo $data[username]." - ";
      echo $data[email]."<br>";
	  
	  $sendto = $data[email];
	  $subject = $news[subject];
	  $message = $news[message];
	  $from = "FROM: ".SENDERMAIL;
	  mail($sendto,$subject,$message,$from);
	}
	// when done ...
	if($end >= $emails[gesamt]) {
	  echo "<b>done! :)</b>";
	  exit();
	}
	echo "</pre>";
	
	header("location: index.php?newsid=$_GET[newsid]&start=$end");
  }
An was kann das nun liegen? Bzw. was mache ich falsch?


mfg,
DivDax
 
DivDax hat gesagt.:
Code:
                     echo "</pre>";
	header("location: index.php?newsid=$_GET[newsid]&start=$end");

So weit ich weis, darf vor dem Header-Befehl keine Ausbage an den Browser erfolgen. Du gibts aber ja schon mit echo etwas aus.
 
Ich bekomme die Fehlermeldung "cannot add header information", was mache ich falsch?
  • Diese Fehlermeldung wird ausgegeben, wenn versucht wird, ein Cookie zu setzen, eine Session zu starten oder per Header auf eine andere Seite weiterzuleiten, zuvor allerdings schon HTML Code an den Browser geschickt wurde. Entweder ihr stellt nun euren Code dementsprechend um oder ihr benutzt die Funktion ob_start() in Verbindung mit ob_end_flush().
 
Zurück