phpbar.de logo

Mailinglisten-Archive

[php] Session automatisch beenden, wenn Fenster geschlossen wird

[php] Session automatisch beenden, wenn Fenster geschlossen wird

Peter Petermann PPetermann at vivaplus.tv
Mon Feb 9 16:18:44 CET 2004


>> http://learn.to/quote
> Auf wen bezog sich das?
auf Sebastian, immerhin hab ich auf dessen Mail geantwortet ;)


>>> das geht aber auch mit den PHP-eigenen-Sessions, ... man könnte auch 
>>> noch den Browser-String mitspeichern ... ein Timeout einbauen ... 
>>> usw ...
>> Timeout haben die PHP internen Sessions z.B. schon.
>> Effektiv spricht eh nichts dagegen selbige zu benutzen.

> Ich will jezt nicht auf jedes Posting einzeln eingehen...
solltest du aber, das beugt missverständnissen vor.

> Umständlich finde ich meine Lösug gar nicht weil ich mit einer bekannten 
> Umgebung arbeite. Es kommt nicht allzu selten vor das PHP-Sessions aus 
> unerfindlichen Gründen gar nicht gespeichert werden. Konfiguration etc...
Dann solltest du dein PHP richtig konfigurieren.


>>> Problem: In der Browser History ist die ID gespeichert!
>>> Workaround: Timstamp läuft irgendwann ab:
>>> $q = "UPDATE user SET ip=0, sid=0 WHERE now()-zeit > 9000"
>> Timeout, machen die PHP Sessions von selbst, was mich wundert ist, Bei 
>> deiner lösung behälst du die sessiondaten gespeichert, weißt sie 
>> lediglich niemandem mehr zu? Wozu das?
>Das mit dem Timeout war in meiner Lösung dabei! Überlesen? Schau mal in der 
>Originalnachricht.
Dann lies du nochmal.
Ich habe mich darauf bezogen, das das was du da als Workarround in deiner Lösung anbietest,
in den nativen PHP Sessions als Timeout eh schon implementiert ist. Im Prinzip ein Hinweis,
das du dir auch da unnötige Arbeit gemacht hast.

Auf meine Frage bezüglich der Session-Daten bist du garnicht eingegangen..


>Wenn ich mit PHP-Sessions arbeite und keine Cookies will, muß ich das PHP auch 
> sagen. Sollte eigentlich kein Problem sein. 
wenn Cookkies vom Anwender unterstützt werden, macht es keinen wirklichen Sinn die SID anderweitig beim User abzulegen und zu tracken.


>Dass es kein Verbindliches Löschen sondern nur ein Timeout gibt ist mir auch klar.
??? worauf beziehst du dich?


> In meinem /tmp - Verzeichnis flaggen noch einige Sessions rum nach wie vielen 
> Tagen werden die gelöscht? Nach 2 nicht. Oder ist das Sache des Cron-Jobs? 

siehe dazu php.ini:

	; Define the probability that the 'garbage collection' process is started
	; on every session initialization.
	; The probability is calculated by using gc_probability/gc_divisor,
	; e.g. 1/100 means there is a 1% chance that the GC process starts
	; on each request.
	session.gc_probability = 1
	session.gc_divisor     = 100
	
Diese Options bestimmen wann immer die Garbage Collection, die das Löschen ausführt durchläuft,

	; After this number of seconds, stored data will be seen as 'garbage' and
	; cleaned up by the garbage collection process.
	session.gc_maxlifetime = 1440

Und hier siehst du wie die Timeout dauer angegeben wird,
bei einem durchlauf der GC, wird alles was länger als session.gc_maxlifetime nicht geändert wurde gelöscht.

MfG,
Peter Petermann

--
Peter Petermann,  VIVA PLUS Fernsehen GmbH,  Digital Asset Management
Adresse: Schanzenstrasse 22, 51063 Köln  Mail: ppetermann at vivaplus.tv
Telefon: +49 (221) 6509 5035,            Fax:    +49 (221) 6509 95035
                * Non scholae sed vitae discimus.* 

php::bar PHP Wiki   -   Listenarchive