Hauptmenü

Untermenü

PHP/MySQL - Sessions - Eine Session killen

1. Die Abschnitte

2. Grundsätzliches

Eine Session anzulegen ist ja Pipifax, wie ihr mittlerweile wisst. Aber das Plätten derselben nicht. Zunächst mal eine einfache Grundregel. Bevor man sie in die ewigen Jagdgründe schickt, muss man natürlich zuvor ein session_start() setzen, da man sonst keinen Zugriff darauf hat. Selbst beim Wegballern.

3. Um Gottes Willen

Zunächst mal etwas ganz Wichtiges! Ihr dürft auf gar keinen Fall, niemals, niemals, niemals so vorgehen.


unset($_SESSION);

Denn damit deaktiviert ihr die Registrierung von Variablen durch das superglobale $_SESSION.

4. Jetzt wird es schwierig

Um eine Session zu zerstören, gibt es die Funktion session_destroy(). Um nur ihre Inhalte zu entfernen, benutzt man session_unset().

Aber!

So wirklich hundertprozentig funktioniert das nicht immer. Fragt mich bitte nicht nach dem Warum. Das weiß ich selber nicht. Hab mich ehrlich gesagt auch noch nie darum gekümmert.

5. Töten, zerstören, vernichten

Will man nun eine Session definitiv in den Orkus befördern, so muss man auf eine ziemlich radikale Methode zugreifen.


<?php
  session_start()
  ...
  session_unset();
  session_destroy();  
  $_SESSION = array();
?>

Erläuterung

Wie schon gesagt, löscht session_unset() nur die Inhalte. Die Session selber bleibt bestehen. Durch session_destroy() wird nun selbige geplättet. Da das aber nicht immer ausreicht, so sollte man zusätzlich noch mit $_SESSION = array(); aufräumen. Das hat mit Sessions selber nichts mehr zu tun, man leert nur noch das superglobale Array $_SESSION.

Noch ein Hinweis

Sowohl die Session-Datei als auch das Session-Cookie existieren nach wie vor. Schaut mal auf eurem Server im entsprechenden Ordner und in den Einstellungen eures Browsers nach. Allerdings wurde die Verbindung zwischen beiden "getrennt". Da ein Session-Cookie eh nur für eine Sitzung gültig sein sollte, ist das Ding nach dem Schließen des Browsers eh hops.

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt