warum werden meine Session-Dateien so willkürlich gelöscht???
Andreas-Lindig
- php
Hallo Forum,
in meinem Forums-Projekt werden die Session-Dateien (nicht immer, ober oft)
nach einigen Mituten gelöscht. Das passiert immer nur, wenn auf dem Server
(oder im gleichen Projekt?) noch andere Aufrufe stattfinden. Also: wenn ich
das Projekt mit dem einen Browser teste, offen stehen lasse, mit dem anderen
Browser teste und dann wieder zum ersten zurückkehre ist für diesen Browser
die aktuelle Sessiondatei nach einigen Mituen weg. wie komt' s?
freundlicher Gruß, Andreas
Wahrscheinlich durch die Ablaufzeit des SessionCookies!
Tip: versuchs mit phplib! da kannst du alles genau einstellen...
Moin!
Wahrscheinlich durch die Ablaufzeit des SessionCookies!
Tip: versuchs mit phplib! da kannst du alles genau einstellen...
Warum? phplib ist toll für PHP3 gewesen. Aber die Tatsache, dass die phplib extra ein Modul enthält, um die nativen PHP4-Sessions zu nutzen, sollte dich irgendwie stutzig machen.
- Sven Rautenberg
Hallo Sven,
Warum? phplib ist toll für PHP3 gewesen. Aber die Tatsache, dass die phplib extra ein Modul enthält, um die nativen PHP4-Sessions zu nutzen...
und, was sagt mir das jetzt?
ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
aha!
Gruß, Andreas
Hallo Günther,
Wahrscheinlich durch die Ablaufzeit des SessionCookies!
Bzw. der Session ueberhaupt. PHPs "Garbage Collector" fuer
diese Session-Dateien funktioniert relativ einfach: jeder
PHP-Prozess guckt nach, ob eine der Sessions, die durch die
Session-Dateien repraesentiert werden, abgelaufen ist. Wenn ja,
so wird sie eben geloescht.
Tip: versuchs mit phplib! da kannst du alles genau
einstellen...
Und das kann man nicht bei PHP selber? ;) Komisch, ich dachte,
da gaebe es verschiedene Parameter...
Gruesse,
CK
Hallo
Und das kann man nicht bei PHP selber? ;) Komisch, ich dachte,
da gaebe es verschiedene Parameter...
Und da hast Du recht steht sogar zur Abwechslung mal ausführlich sogar in der deutschen Doku.
TomIRL
Hallo Tom,
Und da hast Du recht steht sogar zur Abwechslung mal ausführlich sogar in der deutschen Doku.
klingt wie der Wink mit dem ZaunPfahl, aber ich habe alles durchforstet und nur die fogenden Werte gefunden:
session.cache_expire (bei mir: 180)
session.gc_maxlifetime (bie mir: 1440)
nun habe ich versucht mit dieser Funktion:
ini_set ('session.cache_expire', ...);
den Wert zu ändern, aber keinen Erfolg gehabt.
also ich bin noch kein bisschen klüger geworden durch meine Versuche...
Gruß, Andreas
Hallo ANdreas
session.cache_expire (bei mir: 180)
session.gc_maxlifetime (bie mir: 1440)
nun habe ich versucht mit dieser Funktion:
ini_set ('session.cache_expire', ...);
den Wert zu ändern, aber keinen Erfolg gehabt.
HAst Du Zugriff auf die PHP.ini?
Dann kannst Du die in einem Texteditor ändern.
2. Möglichkeit
Du sendest einen richtigen Cookie da kannst Du die Laufzeit mit den Parametern mitgeben.
Wer dann keine ookies akzeptiert muß eben damit leben, das er ab und zu rausfliegt.
Dein Problem tritt aber nur unter ganz bestimmten Vorraussetzungen auf.
Dann mußt Du Dir überlegen, ob diese beim normalen USer Deines Forum
überhaupt mal antrifft.
Ich denke ehr nicht.
Hoffe ich konnte helfen
TomIRl
Hast Du Zugriff auf die PHP.ini?
zuhause schon, aber da hat eben bisher nichts geholfen, vielleicht hab' ich's ja falsch gemacht...
Hast Du Zugriff auf die PHP.ini?
bei meinem Hoster natürlich nicht
Dann kannst Du die in einem Texteditor ändern.
aber was genau???
- Möglichkeit
Du sendest einen richtigen Cookie da kannst Du die Laufzeit mit den Parametern mitgeben.
Ich setze einen Cookie mit der Laufzeit ein Monat, allerdings mit Nutzer-Daten. Das Cookie mit der Session-ID wird natürlich automatisch gesetzt - meintest Du DAS (also die SessID nochmal per Hand setzen)?
Wer dann keine ookies akzeptiert muß eben damit leben, das er ab und zu rausfliegt.
wirkt nur leider ziemlich unprofessionell. Ich kann mir nicht vorstellen, daß man damit leben muß. Das gibt's doch auf andren Seiten auch nicht.
Dann mußt Du Dir überlegen, ob diese beim normalen USer Deines Forum überhaupt mal antrifft. Ich denke ehr nicht.
leider doch - haben Tester hier schon berichtet - und so viele haben noch nicht getestet.
Hoffe ich konnte helfen
leider bisher kaum, aber danke für Deine Mühe
Gruß, Andreas
--
http://forum.andeas-lindig.de
<session.cookie_lifetime
0 bedeutet die Sesion wird beendet wenn der Browser gschlossen wird!
- Möglichkeit
Du sendest einen richtigen Cookie da kannst Du die Laufzeit mit den Parametern mitgeben.
Ich setze einen Cookie mit der Laufzeit ein Monat, allerdings mit Nutzer-Daten. Das Cookie mit der Session-ID wird natürlich automatisch gesetzt - meintest Du DAS (also die SessID nochmal per Hand setzen)?
Ich würde es mal probieren.
Ich hab mir gerade mal Deine Seite angeguckt und bei mir lief alles schön ohne rauswurf oder so.
wirkt nur leider ziemlich unprofessionell. Ich kann mir nicht vorstellen, daß man damit leben muß. Das gibt's doch auf andren Seiten auch nicht.
Da hast Du wohl recht.
Viele Grüße aus berlin
TomIRL
<session.cookie_lifetime
0 bedeutet die Sesion wird beendet wenn der Browser gschlossen wird!
so ist es bei meinem Hoster. Weißt Du denn, was genau session.cache_expire bedeutet? Ich bin da aus dem Manual nicht wirklich schlau geworden. In wessen Cache wird da was gespeichert? Ich mein: die Seite wird doch (wg. PHP) immer neu interpretiert - die kann man doch nicht einfach speichern.
Gruß, Andreas
<session.cookie_lifetime
0 bedeutet die Sesion wird beendet wenn der Browser gschlossen wird!
so ist es bei meinem Hoster. Weißt Du denn, was genau session.cache_expire bedeutet? Ich bin da aus dem Manual nicht wirklich schlau geworden. In wessen Cache wird da was gespeichert? Ich mein: die Seite wird doch (wg. PHP) immer neu interpretiert - die kann man doch nicht einfach speichern.
session.cache_expire spezifiziert in Minuten, wie lange Session-Seiten im Cache bleiben. Bei nocache ist diese Angabe wirkungslos. Grundeinstellung 180.
Mit der Funktion session_cache_expire() kannst Du die aber hochsetzen.
Allerdings mußt Du die Funktion nach Manual vor session_start verwenden.
Ich denke mal es ist schon der Cache gemeint!
Ich ändere mal den Titel!
Vielleicht findet sich ja noch einmal ein qualifizierterer Antworter der richtig Ahnung von solchen Dingen hat.
Hallo,
du brauchst nur das Scanrecht (x) für das Sessionverzeichnis wegzunehmen. Dann werden gar keine Sessiondateien mehr gelöscht. Der GC ist nämlich sehr primitiv programmiert. Er scannt tatsächlich das Sessionverzeichnis und schaut sich die LastTouched Erte der Dateien an.
Standardzeit sind 1440 Sekunden -> 24 Minuten.
Chris