04. marts 2004 - 14:46Der er
5 kommentarer og 1 løsning
SESSION unset, destoy, tidsbestemt mv.
Hejsa
Jeg roder lidt med noget SESSION
Jeg ville lige i denne anledning hører til et par spm:
1) På et tidspunkt vil jeg gerne fjerne værdierne fra de fleste af mine SESSIONS, men hvordan gør jeg det uden at slette de resterende ?
2) Kan man sætte en tid på en session så den kun gælder i 10 min hvis brugeren ikke bruger computeren eller tilsvarende? Ment på den måde at hvis brugeren ikke logger ud, så slettes den pågældende sessions!
AI bliver først for alvor en del af arbejdet, når teknologien integreres i den måde, vi arbejder på. At have adgang til AI betyder ikke nødvendigvis, at medarbejderne er klar til at bruge den.
1 og delvist 3: Du bruger unset() til at slette en del af dit $_SESSION array.
session_destroy() sletter hele sessionen (inkl. brugerens session id), hvor unset kun sletter i $_SESSION arrayt, hvilket ikke påvirker brugerens session id.
Så hvis du skal have fjernet nogen værdier fra din session, så bruge unset() hvis du skal have fjernet hele sessionen, så brug session destroy(). Hvis du skal have nulstillet sessionen, uden at ændre brugerens session id, så brug: $_SESSION = array();
Session holder jo lige så lang tid som en bruger har sin browser åben, så du kan nok ikke direkte påvirke hvornår session skal slettes.
Du kan dog hver gang brugeren fortager sig noget på din side, lave et lille tjek hvornår brugeren sidst fortog sig noget på din side. Hvis det er over X antal min. siden, så kalder du session_destroy() inden du udfører handlingen!
Du kan altid se hvordan dit session array ser ud med: echo "<pre>; var_dump($_SESSION); echo "<pre>;
Hvis du har følgende: $_SESSION['user'] = 1; $_SESSION['titel'] = 'Direktør'; $_SESSION['uge'] = 4;
Så kan du slette titel med: unset($_SESSION['titel']);
Hvis nu der ligger et array på et index i $_SESSION, så sletter den hele arrayet: $_SESSION['user']['id'] = 5; $_SESSION['user']['name'] = 'SomeName' $_SESSION['user']['title'] = 'SomeTitel'; $_SESSION['user']['level'] = 5;
unset($_SESSION['user']); vil så fjerne alt hvad der ligger under ['user']
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.