Hello,
und noch eine Frage.
Ich mache Cookies zur Pflicht durch "ini_set('session.use_only_cookies',1);"
Zumindest dachte ich so, aber wenn ich Cookies im Browser deaktiviere, wird zwar die Sessionprozedur nicht verarbeitet, aber das TMP-Verzeichnis füllt sich trotzdem und zwar sogar mit jeweils einer Datei je Seitenaufruf.
Ist das ein Bug?
Ja, aber in Deinem Kopf ;-P
Wenn Du 'session.use_only_cookies' auf true setzt, dann weist Du PHP damit an, nur Cookies zu benutzen für den Sessionkey-Transport und keinen in der URL sichtbaren Key und auch keine <hidden>-Elemente in eventuell vorhandenen Formularen.
Wenn nun ein session_start() aufgerufen wird, schaut PHP zuerst in den Cookies, ob dort ein Session-Cookie (der Name muss gleich dem Ergebnis von session_name() sein) vorhanden ist. Ist ein passender da, wird nach einer bestehenden Session mit dem übertragenen Wert gesucht. Wird diese gefunden, wird sie fortgesetzt. Wird keine passende Session gefunden, z.B. weil gar kein Cookie übertragen wurde, dann wird eine neue Session gestartet, dafür eine neue Sessiondatei angelegt und ein neuer, dazu passender Cookie an den Client mitgeschickt. Kommt der dann beim nächsten Request wieder mit zum Server, kann die Session fortgesetzt werden.
Wenn der Client keine Cookies akzeptiert und Du 'session.use_only_cookies' auf true gesetzt hast, kannst Du mit dem automatischen Session-Support von PHP keine Sessions führen.
Weitere Möglichkeiten, eine Client-Erkennung durchzuführen, wäre nun noch Basic-Authentification. Dann erscheint am Client aber das "hässliche Anmeldefenster". Außerdem gibt es bei basic auth keine Möglichkeit, sich "abzumelden", außer alle Browserfenster zu schließen.
Liebe Grüße aus dem Cyberspace
Tom vom Berg