molily: Sessions, Server und Client

Beitrag lesen

Hallo,

Also, eigentlich brauche ich clientseitig nur einen Cookie in dem eine eindeutige userid steht, und den Rest bräuchte ich eigentlich serverseitig (dann also eine php-session). Ich versteh' aber noch nicht so ganz wie das im Zusammenspiel funktionieren soll. Hätte da jemand vielleicht ein kleines Beispiel?

<?php  
[code lang=php]error_reporting(E_ALL | E_STRICT);  
ini_set('date.timezone', 'Europe/Berlin');  
  
define('SESSION_NAME', 'sid');  
ini_set('session.name', SESSION_NAME);  
ini_set('session.use_only_cookies', true);  
  
session_start();  
  
if (isset($_GET['destroy'])) {  
 session_destroy();  
 // Lösche Cookie  
 setcookie(session_name(), '', 0);  
 echo('<p>Sitzung zerstört.</p>');  
 exit;  
}  
  
if (isset($_COOKIE[SESSION_NAME])) {  
 echo('<p>Session-ID: ' . session_id() . '</p>');  
 echo('<p>Gespeicherte Session-Daten:</p>');  
 echo('<pre>'); print_r($_SESSION); echo('</pre>');  
} else {  
 echo('<p>Erzeuge neue Session, setze Session-Daten.</p>');  
 $_SESSION['Zeitpunkt des Startes der Session'] = date('c');  
 echo('<pre>'); print_r($_SESSION); echo('</pre>');  
}  

?>
<form action="">
<p><input type="submit" name="destroy" value="Session zerstören"></p>
</form>[/code]

führt dazu, dass beim ersten Request eine Session-ID berechnet wird und als Cookie an den Browser gesendet wird. Akzeptiert der Browser Cookies, wird die Session-ID beim nächsten Request auf dasselbe Script wieder an den Server gesendet und das Script hat Zugriff auf die Session-Daten.

Wo kommt da jetzt JavaScript ins Spiel...? Natürlich kannst du den per HTTP gesetzten Cookie auch per JavaScript über document.cookie abrufen, nur wozu - bei jedem Request (auch XMLHttpRequest) wird automatisch der Cookie mit der Session-ID an den Server übermittelt.

Mathias