| |
| * Link führt ins Internet |
|
| |
Session-Funktionen in PHP
|
|
Natürlich stellt Ihnen PHP eine Reihe von Funktionen zur Verfügung, welche speziell auf das Session-Management abgestimmt sind. In folgenden Tabelle haben wir die wichtigsten für Sie zusammengefasst:
| Funktione Bedeutung |
| session_start() | Initialisiert bzw. startet eine Session. |
| session_cache_expire() | Liefert die aktuelle Cache-Verfallszeit. |
| session_cache_limiter() | Liefert die aktuelle Cacheverwaltung oder setzt die aktuelle Cacheverwaltung. |
| session_decode() | Dekodiert die Daten einer Session aus einer Zeichenkette. |
| session_destroy() | Beendet eine Session und entfernt sämtliche Sessiondaten. |
| session_encode() | Kodiert die Daten der aktuellen Session als Zeichenkette. |
| session_get_cookie_params() | Liefert die Session-Cookie Parameter. |
| session_id() | Liefert die aktuelle Session-ID oder öffnet die Session mit einer übergebenen ID. |
| session_is_registered() | Überprüft, ob eine globale Variable in einer Session registriert ist. |
| session_module_name() | Liefert das Session-Modul oder setzt das aktuelle Session-Modul. |
| session_name() | Liefert den Namen der aktuellen Session oder startet eine neue Session unter dem angegeben Namen. |
| session_regenerate_id() | Ersetzt die aktuelle Session-ID durch eine neu erzeugte. |
| session_register() | Registriert eine oder mehrere globale Variablen in der aktuellen Session. |
| session_save_path() | Liefert den aktuellen Speicherpfad der Session oder setzt den aktuellen Speicherpfad der Session. |
| session_set_cookie_params() | Setzt die Session-Cookie Parameter. |
| session_set_save_handler() | Setzt benutzerdefinierte Session-Speicherfunktionen. |
| session_unregister() | Hebt die Registrierung einer globalen Variablen in der aktuellen Session auf und löscht diese dadurch. |
| session_unset() | Löscht sämtliche Session-Variablen. |
| session_write_close | Speichert die Session-Daten und beendet die Session. |
Einsatz von session_start()
Mit Hilfe der Funktion session_start() sind Sie in der Lage eine Session zu erzeugen oder Sie können die aktuelle Session wieder aufnehmen, die auf der Session-ID basiert, welche mit einer Anfrage, z.B. durch GET, POST oder ein Cookie, übermittelt wurde.
Beispiel - start.php
<?php
// Session Starten
session_start();
echo 'Willkommen auf Seite 1';
// Session Variablen setzen
$_SESSION['vorname'] = 'Caroline';
$_SESSION['alter'] = 25;
$_SESSION['zeit'] = time();
echo '<br><a href="seite2.php">Weiter</a><br>';
?>
|
Beispiel - seite2.php
<?php
session_start();
echo 'Willkommen auf Seite 2<br>';
echo $_SESSION['vorname']."<br>";
echo $_SESSION['alter']."<br>";
echo date('d.m.Y H:i:s', $_SESSION['zeit'])."<br>";
echo '<br><a href="start.php">Zum Anfang</a>';
?>
|
Ausgabe
Willkommen auf Seite 2
Caroline
25
27.01.2004 22:06:04
|
Sie können die Session-ID auch explizit mit Hilfe der Konstanten SID übergeben.
echo '<br><a href="seite2.php?' . SID . '">Seite 2</a>';
|
Nach dem Aufruf von start.php enthält automatisch auch die zweite Seite, seite2.php, die Session-Daten.
| Hinweis: Bei Verwendung Cookie-basierter Sessions müssen Sie session_start() aufrufen, bevor irgend etwas an den Browser geschickt wird. |
| Achtung: Ab PHP 4.3.3 resultiert der Aufruf von session_start(), nachdem die Session schon gestartet wurde, in einem Fehler der Stufe E_NOTICE. Der zweite Session-Start wird in diesem Fall einfach ignoriert. |
Einsatz von session_destroy()
Mit Hilfe der Funktion session_destroy() sind Sie in der Lage sämtliche auf die aktuelle Session bezogenen Daten zu löschen. Hierbei sollten Sie auf die beiden folgenden Methoden zurückgreifen:
Beispiel - Löschen einer Session
<?php
// Initialisierung der Session.
session_start();
// Löschen aller Session-Variablen.
session_unset();
// Zum Schluß, löschen der Session.
session_destroy();
?>
|
Löschen einer Session mit $_SESSION
<?php
// Initialisierung der Session.
session_start();
// Löschen aller Session-Variablen.
$_SESSION = array();
// Zum Schluß, löschen der Session.
session_destroy();
?>
|
Sollten Sie mit einer benannten Session arbeiten:
// Session Starten
session_name("Sitzung");
session_start();
|
Dürfen Sie beim Löschvorgang nicht vergessen die Funktion session_name() mit anzugeben.
Beispiel
<?php
// Initialisierung der Session.
session_name("Sitzung");
session_start();
// Löschen aller Session-Variablen.
session_unset();
// Zum Schluß, löschen der Session.
session_destroy();
?>
|
Session und Arrays
Das folgende Beispiel so Ihnen zeigen, dass der Mechanismus auch mit Arrays einwandfrei funktioniert.
Beispiel - startprodukte.php
|
<?php
// Session starten
session_start();
// Array erzeugen
$produkte = array("Brillen", "Autos", "Computer");
// Array mit der Session verknüpfen
$_SESSION["produkte"] = $produkte;
// oder mit session_register("produkte");
// Weiterleitung
echo "<a href=ausgabe.php>Ausgabe</a>";
?>
|
Beispiel - ausgabe.php
<?php
session_start();
$s_name = session_name();
echo "<b>Session-Name:</b> $s_name<br>";
foreach ($_SESSION["produkte"] as $element) {
echo "$element<br>";
}
?>
|
| Hinweis: Sollten der Einsatz von $_SESSION nicht möglich sein können Sie auch session_register() einsetzen. Dies wird jedoch seit PHP 4.1.0 nicht mehr empfohlen! |
Einsatz von session_name()
In der Konfigurtaionsdatei php.ini wird der Name der Session in dem Parameter session.name festgelegt - standardmäßig auf PHPSESSID. Sollten Sie ohne Eingriff in die php.ini oder in die Webserverkonfiguration diesen Namen ändern wollen, steht die Funktion session_name() zu Verfügung. Diese Funktion muss vor dem (Re)initialisieren der Sessiondaten (session_start()) ausgeführt werden.
Beispiel
<?php
// Einen anderen Namen für die Session festlegen
session_name("meineSession");
session_start();
?>
|
|
|
|
|
|
|
|