Hello,
Das ist nicht der Sinn einer Session.
Der Sinn einer Session ist es, dem Besucher mit Hilfe einer Identifikationsmethode einen eigenen temporären Datenstamm (Speicherplatz) zuzuordnen.
Bei dem nächsten Besuch der Webseite, bekommt der User eine neue Session-ID. Du kannst einer Session ein Verfallsdatum/zeit geben, nur darauf würde ich nicht wetten.
_Einer_ Session kann man in PHP kein Verfallsdatum geben. Der Verfall der Sessiondaten (das rigorose Löschen) ist für alle Sessions gemeinsam geregelt und von folgenden Faktoren abhängig:
Die minimale Lebensdauer - fälschlicherweise session.gc_maxlifetime gennant
Die Wahrscheinlichkeit des Löschprozesses - session.gc_probability
Die Besucherfrequenz, besser die Häufigkeit des Session-Start-Vorganges, der z.B. durch session_start() oder durch session_register() (bitte nicht mehr benutzen) ausgelöst wird.
Wenn Du eine Sessiondatei länger aufheben willst, solltest Du dich von dem Simpelmechanismus verabschieden und dem Benutzer eine feste Session-ID und eine zusätzlichen PIN-Cookie zuordnen. Das Verzeichnis mit den Sessiondateien sperrst Du dann einfach gegen Lesen (r-Recht), aber nicht gegen Nutzung (x-Recht). Der GC kann dann nicht mehr tätig werden, da er dazu das Sessionverzeichnis browsen muss (Liste der Dateien beschaffen). Dazu musst Du die Sessions in ein eigenes Verzeichnis verlagern (session.save_path).
z.B. /tmp/sessions/sess_abcdeffg1234567890abcdeffg1234567890
Wann eine Sessiondatei gelöscht wird, kannst Du dann selber entscheiden und dies z.B. mit session_destroy() vornehmen.
Üblicherweise steht die Session-ID dann in einer User-Login-Datei.
mit session_id($sess_number) VOR dem session_start() kannst Du diese dem User dann zuordnen.
Viel Erfolg
Tom