Der Martin: Logoutproblem mit Session-Variablen

Beitrag lesen

Hallo,

if (!$_SESSION['login'] or !isset($_SESSION['login']))

die beiden Einzel-Abfragen solltest du umgekehrt formulieren - die isset()-Abfrage immer zuerst. Von der boolschen Logik her ist es dasselbe, aber PHP arbeitet logische Verknüpfungen von links nach rechts ab und bricht die Auswertung ab, sobald das Ergebnis feststeht. Deswegen prüft man *zuerst* auf Vorhandensein einer Variablen mit !isset(), und wenn das zutrifft (die Variable nicht existiert), dann greift PHP gar nicht mehr auf den Variablenwert zu. In deinem Fall erfolgt aber auf jeden Fall erst ein Zugriff auf den Variablenwert, der fehlschlagen kann (dann wird idR eine Notice-Meldung ausgegeben), und die Prüfung auf Vorhandensein ist dann sinnlos.

Das Problem ist also, wieso wechselt der Server scheinbar willkürlich den Wert von $_SESSION['login'] von TRUE auf NULL und wieder zurück?

Du übermittelst die Session ID doch bestimmt in einem Cookie, oder? Bist du sicher, dass du immer dieselbe Session verwendest? Könnte es nicht sein, dass der IE in bestimmten Fällen das Cookie mit der Session ID nicht ordentlich vorzeigt? Steht wirklich immer die richtige Session ID in $COOKIE[]?

So long,
 Martin

--
Ich verdanke meinen Eltern so viel - besonders meiner Mutter und meinem Vater.
  (Dakota Fanning, US-Nachwuchsschauspielerin)
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(