"header already sent error" bei header anweisung
Chris
- php
Hallo Leute,
ich habe ein Problem, welches ich nicht verstehe:
ich habe eine Seite erstellt, auf der es Sessions gibt und man sich ein- und auslogt.
Nun habe ich in dem LogIn Script im Falle einer erfolgreichen Authentifizierung ein header() eingebaut, um die Seite neu zu laden und damit auch die Änderungen auf der Seite durch die Anmeldung zu zeigen.
Auf meinem Notebook klappte das ohne Probleme, mein Desktop PC meckert aber
Warning: Cannot add header information - headers already sent by (output started at C:\Programme\Apache Group\Apache2\htdocs\xy.php:6) in C:\Programme\Apache Group\Apache2\htdocs\login.inc on line 23
Auf dem Notebook läuft
PHP 5.0.0b3
Apache 2.0.48
Auf dem Desktop PC
PHP 4.2.2
Apache 2.0.40
Error notice ist bei beiden aktiv.
Hier das simple logout script, welches schon den Fehler ausgibt:
<?php
session_destroy();
header("Location: ".str_replace("logout","index",$_SERVER['HTTP_REFERER']));
?>
Leerzeichenfehler meine ich ausschliessen zu können, da die Session korrekt initialisiert wird.
Ich bin ratlos und für jeden Tipp dankbar, vielleicht bin ich ja zu blöd.
gruß,
Chris
Hallo, Entwarnung, es wurde tatsächlich schon was gesendet vor dem header().
Danke trotzdem,
Chris
Hi Chris,
header("Location: ".str_replace("logout","index",$_SERVER['HTTP_REFERER']));
Du weißt, was hier passiert, wenn der Browser (z.B. aufgrund einer aktivierten Firewall) "", "xxxxxxxxxxxxxxxxxxxxxx" oder vielleicht auch "http://seite.der.firewall.de" übergiebt? Dann landet dein Besucher wo, wo er gar nicht hinwill.
MfG, Dennis.