09. juni 2003 - 05:01Der er
9 kommentarer og 2 løsninger
Tjek af session timeout
Hvordan tjekker man hvad session timeout er - eller hvad det nu hedder. Altså den tid der går inden serveren lukker en session ned hvis brugeren ikke er aktiv.
Det er en remote server hvor jeg ikke har adgang til php.ini.
Når tiden er gået, bliver sessionen markeret til garbage collection (gc). Næste gang der foretages gc vil sessionen forsvinde. Indtil da kan den benyttes helt som om den ikke var markeret til gc.
Hver kan PHP startes (dvs. hver gang nogen går ind på en PHP-side) vil der MÅSKE være gc. Det afgøres ved at "kaste en terning". Sandsynligheden for at der køres gc er som standard 1%, men kan indstilles med session.gc_probability (1=1%).
Dvs. på en privat test-server kan en ubrugt session godt ligge i over en uge.
Hvis det er vigtigt at der sker noget når tiden er gået, må man selv implementere det. Det er heldigvis ret simpelt.
Når der køres gc vil sessioner der er markeret til gc blive fjernet. Hvis der ikke køres gc vil det ikke ske.
Med kun 1% sandsynlighed for gc for hvert request, skal der gennemsnitlig 100 requests til, før der bliver kørt gc. På en privat test-server kan det godt tage lang tid, men på produktions-servere er det ikke noget problem.
Hmm... Ja, det kan man vel godt sige. :) Men på et typisk webhotel er der nok så mange besøgende, at det højest er få sekunder der er tale om. Man skal bare huske at det ikke er nogen garanti!
jeg har ikke nogen php.ini, er det ik kun hvis man selv hoster? Jeg bruger B-one.. Men skal jeg så lave en php.ini fil i roden hvor der står session.gc_maxlifetime i? eller kan jeg skrive det direkte i min functions.php, som altid includeres?
PS TAKKER FOR DIN HJÆLP! Du får noget karma for det :o)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.