Avatar billede googolplex Novice
06. januar 2004 - 23:32 Der er 9 kommentarer og
2 løsninger

Sessions - hvad er forskellen

I forbindelse med et andet spørgsmål undrer jeg mig lidt over hvad forskellen er på Eksempel 1 & 2:

http://dk2.php.net/manual/en/function.session-destroy.php
Avatar billede exp Juniormester
06. januar 2004 - 23:43 #1
I ex.1 bruges session_unset() til at slette sessionen.

I ex.2 bruges array() til at sætte det array $_SESSION indeholder til ingenting.

2 fremgangsmåder - samme resultat.
Avatar billede googolplex Novice
06. januar 2004 - 23:49 #2
Er der en reel forskel, således at det i et tilfælde vil være en fordel at bruge 1. og i et andet 2. - eller giver de nøjagtigt samme resultat?
Avatar billede exp Juniormester
07. januar 2004 - 00:00 #3
umiddelbart vil jeg sige det er ligegyldigt hvilken du bruger - den ene sletter sessionen, den anden tømmer den...
Avatar billede googolplex Novice
07. januar 2004 - 00:03 #4
Er det ikke en væsentlig forskel?
Avatar billede Slettet bruger
07. januar 2004 - 02:01 #5
Nej de gør præcis det samme. Ingen forskel.

Men session_unset er et levn fra dengang $_SESSION ikke eksisterede. Da foregik al manipulation af sessions gennem funktioner (session_register osv.).

Så hvis du bruger $_SESSION, vil jeg da anbefale, at du sletter alle session variable som eksempel 2 (dvs. $_SESSION = array()).

Grunden til de ikke dropper session_unset er (nok) fordi, de ønsker at være bagud kompatible. Så gamle scripts ikke stopper med at virke.

Bemærk endeligt at $_SESSION = array() kun sletter alle session variable. Selve sessionen (brugerens session id) ændres eller slettes altså ikke.
Avatar billede Slettet bruger
07. januar 2004 - 02:03 #6
"Bemærk endeligt at $_SESSION = array() kun sletter alle session variable. Selve sessionen (brugerens session id) ændres eller slettes altså ikke."

Og sletter er ikke engang helt rigtigt. De tømmes.
Avatar billede googolplex Novice
07. januar 2004 - 06:23 #7
mercur:

"Bemærk endeligt at $_SESSION = array() kun sletter alle session variable. Selve sessionen (brugerens session id) ændres eller slettes altså ikke.

Og sletter er ikke engang helt rigtigt. De tømmes."

Er det derfor jeg også skal bruge 'session_destroy()' bagefter ?
Avatar billede Slettet bruger
07. januar 2004 - 06:37 #8
Ja, det er det. Men ellers (hvis du har tømt dem) vil PHP selv slette dem på et tidspunkt (det er som standard filer placeret i en /tmp folder). Det vil PHP gøre, når den kører sin session garbage collection jvf. http://dk.php.net/manual/en/ref.session.php.
Avatar billede sukos Juniormester
07. januar 2004 - 13:31 #9
En ting at lægge mærke til, er hvorvidt register_globals er on eller off
Har selv tidligere "kæmpet" med at få noget til at funke som var skrevet på en server med Off, men skulle afvikles på en server med On

Og kan desværre IKKE lige gi' en nøjagtig forklaring på hvad man skal være opmærksom på.
Der står noget om det på php.net
Avatar billede googolplex Novice
07. januar 2004 - 13:48 #10
Takker for hjælpen alle sammen :)
Avatar billede exp Juniormester
07. januar 2004 - 13:52 #11
c",)
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