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