PHP-Session wird nicht beendet

Kona

Mitglied
Hallo zusammen,

ich habe äußerst widerstandsfähige Sessions hier bei mir. Aus mir noch unbekannten Gründen bleiben die Sessions einfach bestehen, egal was ich mache.

Die Befehle
Code:
session_unset()
und
Code:
session_destroy()
bleiben ebenso unbeachtet wie
Code:
var_dump($_SESSION)
. Auch das Schließen des Browsers läßt die Session kalt, ebenso wenn ich die Session-Datei im /tmp-Verzeichis von PHP lösche. Denn wenn ich meine PHP-Website wieder starte, ist dieselbe Session wieder da. (Ob die Session weg ist habe ich mittels
Code:
javascript:alert(document.cookie)
kontrolliert oder eben im Dateisystem und dann die Session-IDs verglichen).

Was kann ich tun? Kann man da noch in einer xyz.ini etwas steuern? Oder über Session-Flags? Oder liegt es daran, dass das Beenden der Session in einem anderen Skript (Logout-Skript) vonstatten geht als das Starten (Login-Skript?). Die Session-Tutorials, die ich bisher hier gesehen habe hatten wohl dieses Problem nicht ...
 
Wenn beide Skript mit unterschiedlichen Sitzungen arbeiten (etwa aufgrund unterschiedlicher Hostname oder URL-Pfaden), ist das schon möglich. Deswegen müsstest du erst einmal sicherstellen, das immer dieselbe Sitzung verwendet wird.
Weitergehend kannst du versuchen, mit $_SESSION = array() die Sitzungsvariablen zu löschen/zurückzusetzen.
 
Also das mit der unterschiedlichen URL ist interessant.
Gestartet wird die Session in der index.php, beendet in der logout.php. Das könnte man als unterschiedliche URLs bezeichnen ^^

Ich werde das mal ausprobieren:
PHP:
# logout.php
session_start(); // das fehlt nämlich bisher in diesem Skript, könnte also ein Gund sein, waum er die Session nicht wirklich beendet

# do something

session_destroy();
$_SESSION = array();
Dann wüde ich aber im Erfolgsfall auch erwarten, dass eine Ausgabe der Cookies keinen Wert mehr für 'PHPSESSID' bringt. Ist das soweit korrekt?
Oder gibt es noch eine andere Möglichkeit sicherzustellen, dass ich dieselbe Session zur Verfügung habe?
 
Zurück