PHP Doku:: Einführung - intro.session.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzSession-ErweiterungenSessionbehandlungEinführung

Ein Service von Reinhard Neidl - Webprogrammierung.

Sessionbehandlung

<<Sessionbehandlung

Installation/Konfiguration>>

Einführung

Die Unterstützung von Sessions in PHP bietet die Möglichkeit, bestimmte Daten während einer Folge von Aufrufen Ihrer Website festzuhalten. Damit können Sie persönlichere Anwendungen erstellen und Ihre Website ansprechender gestalten.

Einem Besucher wird beim Aufruf Ihrer Website eine eindeutige ID, die sogenannte Session-ID, zugeordnet. Diese wird entweder benutzerseitig in einem Cookie abgelegt oder in der URL übermittelt.

Die Unterstützung von Sessions erlaubt Ihnen, eine beliebige Anzahl von Variablen zu registrieren und diese über Anfragen hinweg zu erhalten. Wenn ein Besucher Ihre Website aufruft, überprüft PHP automatisch (falls session.auto_start auf 1 gesetzt ist) oder auf Anfrage (explizit durch session_start() oder implizit durch session_register()), ob mit der Anfrage schon eine bestimmte Session-ID gesendet wurde. Wenn dies der Fall ist, wird die zuvor gespeicherte Umgebung wiederhergestellt.

Achtung

Falls Sie session.auto_start aktivieren, können Objekte nur in Ihre Sessions aufgenommen werden, indem die Klassendefinition mittels auto_prepend_file geladen wird. Andernfalls müssen Sie Ihr Objekt mittels serialize() serialisieren und danach mittels unserialize() deserialisieren.

Alle registrierten Variablen werden serialisiert, nachdem die Anfrage beendet ist. Registrierte Variablen, die nicht definiert sind, werden als nicht definiert gekennzeichnet. Auch bei darauf folgenden Zugriffen werden sie nicht vom Session-Modul definiert, außer der Benutzer definiert sie später.

Warnung

Einige Datentypen können nicht serialisiert werden, um in Sessions gespeichert zu werden. Dazu gehören resource-Variablen oder Objekte mit Ringreferenzen (d.h. Objekte, die eine Referenz auf sich selbst an andere Objekte übergeben).

Hinweis:

Bitte beachten Sie beim Arbeiten mit Sessions, dass der Datensatz einer Session nicht angelegt wird, bevor eine Variable mit der Funktion session_register() registriert oder dem superglobalen Array $_SESSION ein neuer Schlüssel hinzugefügt wird. Das gilt auch dann, wenn eine Session mit der Funktion session_start() gestartet wurde.

Hinweis:

Mit PHP 5.2.2 wurde die nicht dokumentierte Eigenschaft eingeführt, Session-Dateien in "/tmp" zu speichern, selbst wenn open_basedir aktiviert war und "/tmp" nicht ausdrücklich zur Liste der zulässigen Pfade hinzugefügt wurde. Diese Eigenschaft wurde in PHP 5.3.0 aus PHP entfernt.


2 BenutzerBeiträge:
- Beiträge aktualisieren...
payal at radixweb dot com
9.11.2010 7:39
If you use auto start session, Session cookie will not be created , it will be created only if you will use session_start()
ivenms at ivenms dot com
23.03.2009 9:08
Here is a sample code which can be used to create logged sessions:

Code for differentiating Guest and Logged members:
<?php
// Starting the session
session_start();

if(isset(
$_SESSION['user']))
    {
       
// Code for Logged members

        // Identifying the user
       
$user = $_SESSION['user'];
       
       
// Information for the user.
   
}
else
    {
       
// Code to show Guests
   
   
}
?>

Code for Logging a User:
<?php
//Username Stored for logging
define("USER", "user");

// Password Stored
define("PASS", "123456");

// Normal user section - Not logged ------
       
if(isset($_REQUEST['username']) && isset($_REQUEST['password']))
            {
               
// Section for logging process -----------
               
$user = trim($_REQUEST['username']);
               
$pass = trim($_REQUEST['password']);
                if(
$user == USER && $pass == PASS)
                    {
                       
// Successful login ------------------
                       
                        // Setting Session
                       
$_SESSION['user'] = USER;
                       
                       
// Redirecting to the logged page.
                       
header("Location: index.php");
                    }
                else
                    {
                       
// Wrong username or Password. Show error here.
                       
                   
}
               
            }
?>
User can be logged successfully with username as "user" and password as 123456.

[NOTE BY danbrown AT php DOT net: Contains a bugfix by (pprem AT pprem DOT net) on 26-APR-2009 with the following note: Dont' write if($user == USER && $pass = PASS).]



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)