Avatar billede buch78 Novice
15. september 2003 - 09:39 Der er 14 kommentarer og
1 løsning

sessions der ikke er afsluttet..

Hejsa.. Jeg har et lille problem med at det ikke er alle mine brugere der logger af mine sider.. og derfor har jeg en masser sessions til at ligge..

Kan man indstille en tid for hvornår de skal dø..
Avatar billede lsskaarup Nybegynder
15. september 2003 - 11:16 #1
Ja selvfølgelig. Jeg har dog ikke lige selv arbedjet med det, så er ikke helt sikker på hvilken du skal bruge.

session.cache_expire
Sets time-to-live for cached session pages, in minutes.

session.cookie_lifetime
How long the session ID cookie will last on the user's machine. Tha default, 0, will last until the browser is close.

Måske skal du bruge dem begge, for også at fjerne de cachede sider.
Avatar billede buch78 Novice
15. september 2003 - 12:05 #2
det har jeg kigget på... min php.ini ser sådan ud
session.cache_expire = 1  skulle være i minutter
og
session.cookie_lifetime = 30 skulle være i sek.

efter jeg har ændret dem har jeg selvfølig genstartet serveren..
men det virke ikke.. andre forslag
Avatar billede sukos Juniormester
15. september 2003 - 12:48 #3
M.h.t. logud, så er selv gået over til at bruge:

$_SESSION = array();
session_destroy();
@unlink(session_save_path() . session_id()); //Slet filen/indholdet af sessionfilen
//Og så er det jo nok en go' ide at gemme sessions i et dir, hvor alle filer kan skrives til/slettes ( chmod() )
//Laves med:
//ini_set('session.save_path', "/dir/som/findes/"); inden en session_start()
//chmod("/dir/som/findes/", 0777);
header("Location:/");
exit;
Avatar billede lsskaarup Nybegynder
15. september 2003 - 14:07 #4
Som sagt er jeg ikke så meget inde i sessions, men har en bog om php hvor der står lidt. Ud over konfiguartionsmulighederne som jeg skrev tidligere, kan/skal du også både deregistere og ødelægge session.

Du kan enten bruge unset($HTTP_SESSION_VARS['myvar']); hvis du bruge $_SESSION eller $HTTP_SESSION_VARS. Hvís du har register_globals sat til, kan du bruge session_unregister("myvar");

Disse kan kun deregisterer en variabel af gangen, du kan derfor også bruge session_unset(); til at deregistere alle nuværende sessions (ved ikke om det sletter alle, hvis du har flere brugere på adgangen).

Når du har deregisteret dem, kan du som sukos skriver slette dem med session_destroy();
Avatar billede buch78 Novice
15. september 2003 - 19:44 #5
hmm jeg har stadivæk ikke fundet en løsning på mit problem.. men jeg dog fundet ud af at session_cache_limiter(); sætter leve tiden for den enklete session. men den sletter den ikke... Er der virkelig ikke andre der har mange sessions som ikke bliver brugt ???
Avatar billede lsskaarup Nybegynder
16. september 2003 - 01:24 #6
Den bestemmer nu ikke levetiden, kun om sessions må caches. http://dk.php.net/manual/en/function.session-cache-limiter.php
Avatar billede lsskaarup Nybegynder
16. september 2003 - 01:28 #7
Efter hvad jeg lige kan finde på www.php.net skulle du kunne nøjes med session_unset() og session_destroy()
http://dk.php.net/manual/en/function.session-destroy.php
Avatar billede lsskaarup Nybegynder
16. september 2003 - 01:31 #8
Måske kan den bruges session_set_cookie_params(int lifetime)

http://dk.php.net/manual/en/function.session-set-cookie-params.php
Avatar billede buch78 Novice
16. september 2003 - 20:33 #9
Hmmm. jeg kan ikke se nogen mulighed for at severen selv kan slette en session. hvis brugeren glemmer dette...

men spørgsmålet er om man kan hente datoen for oprettelsen ind i php og så sige at den skal slette hvis den er ældre end 24 timer.. eller et par dage..

nogen der har et forslag til en kode...

jeg vil så smide koden på en side. der køre hvergang en bruger er logget ind..
Avatar billede sukos Juniormester
16. september 2003 - 20:40 #10
Hvis du bruger en DB, kan du jo sætte tiden for login ind i DB'en, og ved hver login tjekkes lige op hvilke som ikke er for gamle, og er den det, ja så slettes den.

For at slette filer ud fra tiden den er oprettet, uden at bruge DB, så kik på filemtime()
http://dk.php.net/manual/en/function.filemtime.php
Avatar billede buch78 Novice
16. september 2003 - 20:41 #11
Jeg bruger ikke db.. mine sessions bliver gemt local på serveren i en mappe..
Avatar billede buch78 Novice
16. september 2003 - 20:54 #12
Hele mit spørgsmål går ud på at undgå dette... http://www.eksperten.dk/spm/380316
Avatar billede sukos Juniormester
16. september 2003 - 21:03 #13
Jahh, har nu kun selv rodet med PHP på win, og her bliver "gamle" sessionfiler slettet efter et stykke tid!
(Husker ikke hvilken setting i php.ini som bestemmer hvornår, noget med "garbage")
Avatar billede buch78 Novice
18. januar 2004 - 21:21 #14
smid lige et svar sukos
Avatar billede sukos Juniormester
20. januar 2004 - 14:48 #15
Kan jeg godt.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester