Solero: Logoutproblem mit Session-Variablen

Beitrag lesen

Hallo zusammen

Womöglich wird die IF-Abfrage gar nicht ausgeführt, weil das PHP-Skript gar nicht ausgeführt wird. Für mich sieht es so aus, als solltest Du vor allem nach header() und caching schauen. Ich vermute nämlich, Du bekommst im Firefox den Browser-Cache mit dem Login angezeigt.

Die If-Abfrage wird definitiv ausgeführt, ich liess in ihr zusätzlich via PHP etwas ausgeben, was angezeigt wurde, der Browser lud die Seite also nicht aus dem Cache.

Ich vermute ergo, dass diese beiden Zeilen (vor allen anderen Zeilen!) Dein Problem beheben:

header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1

header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Datum in der Vergangenheit!

  
Habe ich natürlich trotzdem ausprobiert, um sicher zu gehen, hat aber das Problem nicht gelöst.  
  

> Wenn der Firefox ein anderes Ergebnis bringt, ist irgendein Wert anders als erwartet. Da helfen erstmal nur Debug-Ausgaben, um den unerwarteten Wert zu finden (mit var\_dump()). Anschließend erst kann man sich ernsthaft Gedanken machen, warum das so ist.  
  
Das war definitiv ein Tipp in die richtige Richtung!  
Nach erfolgreichen Logout erhalte ich durch `var_dump($_SESSION['login']);`{:.language-php} richtigerweise bool(false) und nach erfolgtem Login bool(true), insoweit also korrekt.  
Wenn ich zusammen mit dem Loginscript `var_dump($_SESSION['login']);`{:.language-php} ausgebe, erhalte ich zum Zeitpunkt wo das Loginscript fälschlicherweise aufgerugen wird den Wert NULL, PHP ruft es also richtigerweise auf, da  
`if (!$_SESSION['login'] or !isset($_SESSION['login']))`{:.language-php} zutrifft.  
  
Gebe ich aber nun in die Adresszeile des Browser die URL einer Seite im internen Bereich ein, erhalte ich Zugriff und es wird bool(true) ausgegeben, obwohl ich dem Server \_keine\_ Logindaten gesendet habe!  
  
Das Problem ist also, wieso wechselt der Server scheinbar willkürlich den Wert von `$_SESSION['login']`{:.language-php} von TRUE auf NULL und wieder zurück?  
  
MfG  
Solero