session_destroy()

tach community,

ich dachte ich bin ganz schlau und verwende mal eben schnell sessions, um ein login script zu realisieren…
dumm gelaufen.
alle sessions werden als file auf dem server in ein oeffentliches verzeichnis gespeichert.
wenn man sesseion_destroy() kein problem… nur was ist, wenn der client kein javascript aktiviert hat und den browser schliesst ohne sich abzumelden ???

das file bleibt unddas verzeichnis ist schnell voll. bevor ich alles umschreibe und datenbankfaehig mache… gibts eine moeglichkeit der session ein verfallsdatum zu geben? also, ein echtes, welches auch noch funktioniert, nachdem das script terminiert ist???

also konkret nur ne session frage…andere loesungen hab ich schon parat.

merci fuer die hilfe

grusz

PixelKoenig

Hallo PixelKönig
hier mal nen link zur php referenz: http://de.php.net/manual/de/function.session-cache-e…
mit der funktion session_cache_expire() solltest du in der lage sein die zeit anzugeben.
gruss chris

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Chris,

http://de.php.net/manual/de/function.session-cache-e…
mit der funktion session_cache_expire() solltest du in der
lage sein die zeit anzugeben.

Funktioniert leider nicht. Jedenfalls nicht unter windows. aber das sollte ja eignetlich egal sein. :frowning:

Grusz

PixelKoenig

Hallo Pixelkönig,

http://de.php.net/manual/de/function.session-cache-e…
mit der funktion session_cache_expire() solltest du in der
lage sein die zeit anzugeben.

Funktioniert leider nicht. Jedenfalls nicht unter windows.
aber das sollte ja eignetlich egal sein. :frowning:

Funktioniert auch unter Windows. Bei Verwendung von PHP-Versionen
vor 4.2.3 dürfen Sessions nicht auf FAT-Laufwerken gespeichert werden.

Das Aufräumen der alten Sessions (‚Garbage Collection‘) wird
zufallsbestimmt beim Einrichten einer Session initiert. Per default
wird ca. jedes 100ste Mal eine Garbage Collection durchgeführt.

D.h. es liegen eigentlich immer alte Sessions im Session-Dir.

Das Verhalten bzgl. der Garbage Collection läßt sich durch die
Optionen session.gc_divisor und session.gc_probability beeinflussen.

Ergänzung: Beim Hosten von Sites auf Shared-Servern empfiehlt es sich,
ein eigenes Verzsichnis auf seinem virtuellen Server einzurichten
und die Sessions dort zu speichern; auf den ‚normalen‘ Speicherbereich
haben nämlich sonst alle anderen Accounts auch Zugriff.
(Änderung des Verzeichnisses über session.save_path).

Gruss
Thomas

Hi Thomas,

Funktioniert auch unter Windows. Bei Verwendung von
PHP-Versionen
vor 4.2.3 dürfen Sessions nicht auf FAT-Laufwerken gespeichert
werden.

4.2.0.48 hab ich … aber auf win2000 ntfs

Das Aufräumen der alten Sessions (‚Garbage Collection‘) wird
zufallsbestimmt beim Einrichten einer Session initiert. Per
default
wird ca. jedes 100ste Mal eine Garbage Collection
durchgeführt.

zum einen wusste ich gar nicht, dass php auch einen garbage collector hat… jedenfalls nicht unter vers.5.x
zum anderen kann die aussage nicht ganz stimmen.
ich hoste meine seiten auf einem eigenem webserver, der von einem kollegen administriert wird. der hatte mich darauf hingewiesen, dass das tmp verzeichnis voller toter sessionfiles von mir ist.
er hat es bereits 2mal geleert.

D.h. es liegen eigentlich immer alte Sessions im Session-Dir.

aber nicht hunderte… zumal die nur von meinem gebrauch sind,
da ich in den oeffentlichen scripts keine sessions verwende.

Das Verhalten bzgl. der Garbage Collection läßt sich durch die
Optionen session.gc_divisor und session.gc_probability
beeinflussen.

hmmm… lokal auf meinem rechner kein problem.
muss ich mal mit meinem kollegen quatschen-

und die Sessions dort zu speichern; auf den ‚normalen‘
Speicherbereich
haben nämlich sonst alle anderen Accounts auch Zugriff.
(Änderung des Verzeichnisses über session.save_path).

yep… das ist naemlich mein problem. ist zwar mein eigener server … aber ich vermiete auch unter… und in dem temp verzeichnis liegen alle sessions drin.

danke erstmal fuer die hilfe.
ich denke ich werde mich von sessions verabschieden.

grusz

PixelKoenig

Hallo !

tach community,

ich dachte ich bin ganz schlau und verwende mal eben schnell
sessions, um ein login script zu realisieren…
dumm gelaufen.
alle sessions werden als file auf dem server in ein
oeffentliches verzeichnis gespeichert.

Ändere das doch, wenn es dich stört:
http://de.php.net/manual/de/function.session-save-pa…
oder
http://de.php.net/manual/de/function.session-set-sav…

wenn man sesseion_destroy() kein problem… nur was ist, wenn
der client kein javascript aktiviert hat und den browser
schliesst ohne sich abzumelden ???

das file bleibt unddas verzeichnis ist schnell voll. bevor ich
alles umschreibe und datenbankfaehig mache… gibts eine

Im Manual gibt’s nen Link zu ner fertigen Klasse…

moeglichkeit der session ein verfallsdatum zu geben? also, ein
echtes, welches auch noch funktioniert, nachdem das script
terminiert ist???

http://de.php.net/manual/de/function.session-cache-e… wurde ja schon erwähnt.

Alexander