Probleme mit heaber-Befehl

schecker

Erfahrenes Mitglied
Ich habe in meiner neuen Site öfters den Befehl header() benutzt. Dies funktioniert ja auch, aber nur lokal.
Jetzt habe ich die Site mal auf meinen Webserver geladen und getestet.
Da bekomme ich immer dort wo ich im Script geschrieben habe:
Code:
header("location:xxx");
den Fehler:

Warning: Cannot modify header information - headers already sent by (output started at /home/www/wa1425/html/webshop/delete_artikel.php:15) in /home/www/wa1425/html/webshop/delete_artikel.php on line 32

Kann mir mal jemand erklären was dieser Fehler bedeutet? Oder besser eine andere möglichkeit nach einem Script auf eine andere Site zuleiten?

Danke schecker
 
(output started at /home/www/wa1425/html/webshop/delete_artikel.php:15)
sagt doch schon alles was Du wissen musst.
Vor header(), und aehnlichen Befehlen, darf keine Ausgabe den Browser geschickt werden.
Also entweder das Script abaendern, sodass das nicht passiert oder mit Output Control arbeiten.
Moeglicherweise ist bei Dir lokal das Output Buffering aktiv und auf dem Server nicht.

Uebrigens, Output Control ist nicht der Weg den ich empfehlen wuerde. ;)
 
Welchen weg würdest du denn empfehlen?
Ich habe vor meine Scripte ein ob_start() gesetzt. So funktioniert das auch. Das ist nich tgut meinst du?
 
Man kann es machen, aber ich find es eigentlich irgendwo sauberer darauf zu achten, dass im Falle einer Weiterleitung nichts ausgegeben wird.
Es macht ja eh keinen Sinn etwas auszugeben wenn eh weitergeleitet werden soll.
Und es ist auch nicht wirklich notwendig vor setcookie() etwas auszugeben.
 
Aber session_start() gilt doch auch schon als Ausgabe oder nicht?
Ich hatte sond vorher nie irgendwas anderes Ausgegeben!
 
Ja, session_start() sendet in der Regel einen Cookie.

Nachtrag:
Es ist aber kein Problem die Befehle nacheinander ablaufen zu lassen.
PHP:
<?php
if (!isset($_GET['jump']))
	{
		session_start();
		setcookie("testcookie","test",time()+3600);
		header("Location:headertest.php?jump");		
	}
else
	{
		setcookie("testcookie","test",time()-3600);
	}
?>
Output Buffering ist in der php.ini auf off gestellt.
 
Das werde ich mal testen und schauen wieso das bei meinen Scripten nicht funktioniert hat! Dankre dir für den Hinweis!
 
Am besten sollten vor jeglicher Ausgabe die Daten bereits fertig verarbeitet sein, sodass solche Fehlerquellen nicht entstehen können. Hier kann beispielsweise mit Flags gearbeitet werden um bestimmte Zustände zu speichern, die später berücksichtigt werden müssen.
 
Zurück