Sven Rautenberg: redirect in PHP ohne Header

Beitrag lesen

Moin!

In meinem Skript benütze ich auch Sessions, wobei ich für das Sessionmanagament mittels session_set_save_handler() meine eigene funktionen definiert habe. Das Session-Management ist in einer Klasse gepackt, in der auch session_cache_limiter('nocache'); definiert ist.

Schon beim ersten Aufruf der Seite wird die Sessionklasse inkludiert und eine Session gestartet; dh. somit werden die Headers geschickt.

Ich habe auf jeder Seite die Möglichkeit eines Logins. Die Logininformationen werden mittels POST an die selbe Seite übergeben, und mittels PHP überprüft.

Wenn das Login erfolgreich ist, soll der User automatisch auf eine andere Seite, in meinem Fall frameset.php weitergeleitet werden.

Da jedoch alle Headerinformationes schon beim inkludieren der Session-Klasse geschickt werden, kann ich

Header("Location: frameset.php");

nicht einsetzen.

Sicher?

Gibt deine Session-Klasse denn schon HTTP-Body-Content aus? Wenn nur irgendwelche HTTP-Header (egal ob Cookies, Session_start()-bedingt, oder für das Caching) gesetzt werden, beeinflußt das die Benutzbarkeit nachfolgender header()-Befehle keinesfalls.

Vielleicht solltest du einfach mal headers_sent() abfragen - dann weißt du, ob PHP die Header schon geschickt hat und nochmaliges header() unzulässig wäre.

Alle Ersatzlösungen sind nämlich nicht wirklich schön - egal ob Javascript oder Meta-Refresh.

- Sven Rautenberg