Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Session-Management via PHP
Letztes Update: 16.08.2005 17:53:45


Navigation

Seite News *

Seite Startseite
Seite Über SELFPHP
Seite Werbung
Seite Kontakt
Seite Forum *
Seite Download *
Seite SELFPHP Banner *
Seite SELFPHP in Buchform
Seite Newsletter *
Seite Impressum

 
* 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();
?>




 


Konfiguration des Session-Moduls
 






© 2001-2005 E-Mail SELFPHP - Damir Enseleit, info@selfphp.deImpressumKontakt
© 2005 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de