Chris: "header already sent error" bei header anweisung

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

  1. Hallo, Entwarnung, es wurde tatsächlich schon was gesendet vor dem header().

    Danke trotzdem,
    Chris

  2. 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.

    --
    Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
    Die Definition des SelfCodes ist hier zu finden, es gibt auch einen Encoder.