Hi Dennis,
vielen Dank für deine ausführlichen Antworten. Alles sehr hilfreich, nur ein paar Sachen noch...
Alles so, wie ich es erwartet hätte, dein Problem kann ich also nicht nachvollziehen. Vermutlich ist dein Original-Code länger und du hast vielleicht irgendeine wichtige Stelle fürs Posting hier herausgestrichen?
das Script ist nicht wesentlich länger, weis nur ein Testscript ist. Es kommt lediglich ein Formular hinzu und eine if($_POST....) Anweisunghinzu die das Cookie setzt und dann noch der Link zum löschen. Leider habe ich ja nun schon dran weiter gebastelt, so dass ich das original nicht mehr habe, werde aber nachher nochmal eine solche komplette Vorlage basteln.
session_destroy() würde ich gar nicht benutzen, weil es nicht viel bringt. Wie du die Daten einer Session gelöscht kriegst habe ich dir oben schon gezeigt. Was macht session_destroy() mehr? Es löscht noch die Session-Datei auf dem Server (das was du in deinem tmp Ordner siehst), aber das bringt dir nichts, weil du dich nicht darauf verlassen kannst, dass der Besucher sich auch wirklich ausloggt, sprich du hast keine Garantie, dass session_destroy() auch wirklich für jeder erzeugte Session am Ende auch wieder aufgerufen wird. Wenn der Besucher also einfach seinen Browser zu macht hast du in jedem Fall so oder so eine verwaiste Session-Datei auf dem Server.
Ja das ist klar. Aber ich nutze das auch aus Sicherheitsgründen auch wenn der User sich nicht ausloggt. Wenn zb. Handlungen stattfinden die nicht sollen. Vielleicht auch nur subjektives Empfinden, aber wo keine Sessiondaten, da kann auch nichts mehr fortgesetzt werden.
Zu deinem hier beschriebenen Problem hat dir Tom ja bereits geschrieben - in deinem PHP-Script löschst du stets zuerst alle Cookies, folglich auch das Session-Cookie, da dieses auch nichts anderes als ein normales Cookie ist.
Ja hat er, aber ich glaube ihr habt mich falsch verstanden. Daher nochmal:
User hat Cookies im Browser abgestellt. Wenn PHP nun die Option bietet durch "session.use_only_cookies" heisst das für mich soviel wie, wenn der User keine Cookies akzeptiert, hat er Pech gehabt. Dann wird auch keine Session Datei angelegt, bzw. wenn angelegt dann auch wieder sofort gelöscht.
Stattdessen erhalte ich mit jedem Aufruf eine neue Datei. Das halte ich für Fatal, denn ich könnte dieses Verhalten ausnutzen indem ich Millionen von Session Dateien in den TMP Ordner produzieren lassen könnte, und das bevor der GC greift.
Das müsste sich doch extrem negativ auf den Server auswirken, oder sehe ich das falsch?
Mike