Header("Location:xxx")

schecker

Erfahrenes Mitglied
Hy, habe mal wieder ein Problem.
habe folgendes in meiner php-Site stehen:
Code:
<?
session_start();
session_destroy();
header("Location:index.php");
?>

jedoch bekomme ich dann immer folgenden Fehler ausgegeben:
Warning: Cannot modify header information - headers already sent by (output started at /home/www/wa1425/html/webshop/index.php:7) in /home/www/wa1425/html/webshop/exit.php on line 4

kann mir jemand sagen was ich dagegen tun soll? Ich habe schon alles probiert. Lokal in meinem Xampp geht ja alles aber auf meinem Webserver gehts halt nicht.

Und da vor dem header-Befehl auch keine ausgabe statt findet komme ich nicht mehr weiter

Danke
 
Hallo,

also wenn du wirklich nur diese 3 Zeilen im Script hast, würde es funktionieren, aber keinen Sinn machen.

Ich nehme mal an, du hast noch mehr Code.

Der Fehler kommt, wenn der Header bereits gesendet wurde und das passiert, wenn bspw. etwas mittels echo ausgegeben wird.

Eine header() Weiterleitung funktioniert nur, wenn noch kein Header gesendet wurde!
 
Emu-Emsen hat gesagt.:
Eine header() Weiterleitung funktioniert nur, wenn noch kein Header gesendet wurde!

Das stimmt so nicht. Wenn man sauber Coden möchte dann stimmt die Aussage, es gibt aber einen Befehl der das unterbindet! Und da ich die Theorie noch immer nicht verstanden habe (warum er immer wieder diese Fehlermedlung bringt auch ohne echo() vorher) benutze ich selbst diesen Befehl.
Also einfach noch vor session_start() das folgede setzen:

PHP:
ob_start();

Gruß BSA
 
nein, das ist die ganze Site. Ich will wenn ich auf einen Link klicke das Script ausführen und dann wieder auf die index.php gehen.
Echo ist nirgends drin (in dieser Site zumindestes)
 
Hallo,

das mit der Ausgabepufferung ist natürlich eine gute Lösung. Mit ob_end_flush() die ganze Sache wieder abschließen.

Ohne die Pufferung muss header() aufgerufen werden, bevor eine Ausgabe gesendet wurde. Da reicht schon eine Leerzeile oder ein Leerzeichen aus und das funktioniert nicht mehr.
 
In der index.php Site steht
Code:
<?php
echo "<a href='index.php?id=exit'>Log out</a></TD></TR>"; 
?>

id=exit bedeuted das er in die exit.php gehen soll.
und in der exit.php steht
Code:
<?php 
session_start();
session_destroy();
header("Location:index.php");
?>
 
Zurück