dclp FAQ

FAQ der Newsgroups de.comp.lang.php.*

 
  • Increase font size
  • Default font size
  • Decrease font size

Sessions

Wie übergebe ich Session-IDs ohne Cookies an eine andere Seite? Was ist Fallback?

E-MailDruckenPDFLesezeichen anlegen: Du musst dich einloggen um ein Lesezeichen für diesen Beitrag anzulegen. Es wird deiner persönlichen Lesezeichenliste hinzugefügt.

Viele Browser-User haben in ihrem Browser die Cookies aus diversen Gründen deaktiviert, oder lassen sich jeden Cookie bestätigen. Sollte ein Cookie auf dem lokalen Rechnersystem nicht gesetzt werden können, muss ein Ersatzmechanismus her - ein sog. Fallback. In diesem Fall ist der Fallback (Rückfall / Atavismus) eine Ersatzmethode, die die Übergabe der Session-ID an ein Folgescript ohne Cookies erlaubt.

Man kann den Fallback dadurch realisieren, dass man dem Folgescript die Session-ID quasi "manuell" bei jedem GET

<a href="test.session.php?<?php echo SID; ?>">

oder POST - bei Formularen - mittels

<input type  = "hidden"
       name  = "<?php echo session_name(); ?>"
       value = "<?php echo session_id(); ?>">

übergibt. ACHTUNG: Das bedeutet, dass jeder Link und jedes Formular innerhalb einer Website mit einem zusätzlichen Parameter versehen werden muss! Wird die Session-ID nicht korrekt übergeben, wird ein Folge-Script nicht auf die Sessiondaten zugreifen können - diese Daten sind für dieses Script "verloren".

PHP4 kann man auch mit dem --enable-trans-sid-Parameter kompilieren. Dann hat dies zufolge, dass, wenn der Client (Browser) keine Cookies annehmen kann/will, alle relativen Links einer Webpage mit dem zusätzlichen SessionName=Session-ID Parameter ergänzt werden. Dies klingt zunächst gut, aber man sollte beachten, dass durch den zusätzlichen Aufwand, den der PHP-Parser leisten muss, sich diese Technik nicht für High-Traffic-Websites oder Server mit vielen Vhosts eignet. Auch wenn man Projekte realisiert, die auf anderen Webservern laufen sollen, kann man nicht davon ausgehen, dass das betreffende PHP mit --enable-trans-sid kompiliert worden ist.

Wie übergebe ich Session-IDs ohne Cookies an eine andere Seite? Was ist Fallback?
http://www.php-faq.de/q-sessions-fallback.html
 

dclp FAQ


Login