webForumDet fria alternativet

Ändra sessionslängden

PHP

5 svar · 393 visningar · startad av lillebror

Medlem sedan apr. 20041 597 inlägg
Frågan#1

Hej,

Om jag vill att en session skall vara en timme lång, är detta rätt sätt att skriva det på?

ini_set("session.gc_maxlifetime", "3600");
Medlem sedan aug. 20002 975 inlägg
#2

Det du sätter där är hur länge det ska dröja innan GC rensar bort en inaktiv session.
Detta måste läggas i före session_start() på de sidor du använder session_start().

Medlem sedan apr. 20041 597 inlägg
#3

Jag har denna kod i min header.php.

En användare mailade mig igår och sa att efter att han skrivit och postat ett inlägg så blev han utloggad. Då hade han inte hållit på i en timme.

Varför fungerar det inte? GC ligger före session_start()!

Medlem sedan aug. 20002 975 inlägg
#4

Då är det något helt annat som spökar.

Observera att session.gc_maxlifetime har att göra med hur länge man kan vara inaktiv innan sessionen rensas bort. Man kan alltså vara inloggad i 24 timmar, så länge man minst en gång i timmen gör ett anrop mot sidan utan att däremellan stänga webbläsaren.

Vad det gäller din header så måste du ha den på alla sidor/skript med session_start().

Medlem sedan mars 20034 471 inlägg
#5

lillebror skrev:

... En användare mailade mig igår och sa att efter att han skrivit och postat ett inlägg så blev han utloggad. Då hade han inte hållit på i en timme. ...

En tanke... Kan det vara så att han ansluter via AOL? Kollar du ip-adress vid inloggningskollen? För i så fall kan det ev vara det som spökar. Se Loginproblem - Sessioner och IP

Medlem sedan apr. 20041 597 inlägg
#6

Ja, jag loggar alla ip-nummer.

Vad gäller min IP-header så har jag i den satt session.gc_maxlifetime för session_start() och headerfilen är ju i sin tur inkluderad på samtliga sidor.

I mitt fall så kan ju en användare inte vara inloggad i 24 timmar i och med att membershiplevel mm sätts i sessionerna. Får inte de anropade sidorna denna information skickas man vidare till en "felsida".

3600 har jag ju satt. I teorin borde det ju lösa mina problem men det gör det ju nu tyvärr inte :( Jag trodde jag rättat till detta en gång men det fungerade uppenbarligen inte eftersom en användare (samma som tidigare) hörde av sig om problemet. Jag vill inte att användare ska sitta och skriva långa inlägg som sen går helt förlorade. Då tröttnar man. Det skulle jag göra.

568 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
445 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)