Session Logout
Zu Beginn jeder Fortsetzung einer Session auf einer neuen Seite, muss die Session wieder geladen werden, so als würde eine neue Session angelegt. Zum Logout werden die Session Variablen gelöscht und die Session zerstört.
<?php
session_start(); // erste Zeile der Datei
// die Session wurde weitergeführt falls eine existierte,
// sonst wurde eine neue Session geschaffen!
// eine weitere Session-Variable wird nun registriert
$_SESSION['SessionVar'] = "BlumentoPferde";
?>
Session geht weiter
Ist die Variable SessionName in der Session registriert worden?
Sie sollten sich noch anmelden:
Zur Anmeldung
Könnte ja sein, dass eine Session auf einer anderen Seite gestartet wurde,
dann steht eine im Verlauf jener Session nicht registrierte Variable auch nicht zur Verfügung.
Überprüfung ob eine Variable wärend der laufenden Session
irgendwann registriert wurde und somit zur Verfügung steht:
<?php
if (isset($_SESSION['SessionName'])) {
echo "<strong>Willkommen ".$_SESSION['SessionName']."!</strong><br />\n";
} else {
echo "<strong>Sie sollten sich noch anmelden:</strong><br /><br />\n";
echo "<a href=\"session_form.php\">Zur Anmeldung</a>";
}
?>
Sitzungs-Variablen löschen
unset($_SESSION['SessionName'])
Eine Variable wird gelöscht mit ihrem Namen (ohne $-Zeichen).
<?php
unset($_SESSION['SessionName']); // betrifft nur die angesprochene Session-Variable
?>
Logout
$_SESSION = array()
Alle Variablen werden gelöscht, indem der ganze Array geleert wird (eigentlich wird ein neuer aber leerer Array erstellt).
session_destroy()
Die Session wird beendet ohne wenn und aber.
<?php
$_SESSION = array(); // betrifft alle Session-Variablen
session_destroy(); // zerstört die Session
?>
Session Test
Session Name löschen
Session beenden
Die PHP Funktionen session_register(), session_is_registered() und session_unregister() sind veraltet und ab PHP 6 ungültig.
Falls ich den Test gemacht habe und jetzt den Returnbutton des Browsers nutze, sehe ich, dass die Session nicht mehr existiert und ich dort nicht mehr willkommen bin.