Avatar billede casualty Nybegynder
01. maj 2002 - 21:11 Der er 7 kommentarer og
3 løsninger

Om brugen af sessionsvariabler

Jeg har siddet og rodet med et bruger/login system i asp med en acces db.

Der er en oprettelses side, der checker om brugeren eksisterer i forvejen, og hvis ikke, så opretter den én med oprettelsestid, brugernavn, password, email.

udover det er der en side hvor man kan se sin egen profil´s oplysninger: brugernavn, oprettelsestid, sidste login, email. og på denne side kan man ligeså ændre sin email eller sit password...

Jeg har lavet det på den måde at når man logger ind så oprettes der en masse sessionsvariabler..:

eksempelvis: login=3 Brugernavn=anders password=qq43rrt
logintid=01-05-2002-21:45:45 ....

Efterfølgende kan man så kalde og få vist disse variabler f.eks. på den side hvor man kan se ens egen profil og ændre email/password.
Og man kan ikke komme ind på de sider der kræver at man er bruger hvis sessionsvariablen "login" ikke er =3

Mit spørgsmål er så omsider: er dette den rigtige måde at gøre det på???
Jeg har hørt at sessionsvariabler er meget resource krævende for serveren, der hoster ens site..Så er det for "hårdt" eller unødvendigt, for serveren at huske på alle disse variabler, alt den tid efter man er logget ind, til man forlader mit site???
Jeg ved at man kan overføre variabler via. et url, men er dette sikkert nok?

Mvh. Casualty

(ps)jeg har stadig denne: http://www.eksperten.dk/spm/202779

Jeg vil gerne høre om der er nogen der har et svar, ellers kan jeg ligeså godt lukke spørgsmålet...
Avatar billede Slettet bruger
01. maj 2002 - 21:21 #1
kunne du ikke nøjes med at bruge en session, der hedder bruger id, da du ud fra denne så kan lave en SQL på dine sider der henter de andre oplysninger ud fra brugerens id, dette vil da i det mindste mindske din brug af sessions
Avatar billede casualty Nybegynder
01. maj 2002 - 21:25 #2
Jo dette kunne da være en mulighed...helt sikkert.. :)

Det jeg søger er bare ligesom lidt respons fra andre der kan fortælle hvordan de har gjort det..
Avatar billede Slettet bruger
01. maj 2002 - 21:27 #3
jeg gør det på ovenstående måde, med at jeg bruger id på alle mine side, til at hente info's fra den pågældende bruger, da jeg mener at det er den mest besparende måde
Avatar billede casualty Nybegynder
01. maj 2002 - 21:31 #4
Ok..Du skal nok få points..Jeg vil bare gerne lige høre fra andre også :)
Avatar billede eagleeye Praktikant
01. maj 2002 - 23:15 #5
Jeg gør lige som questis, gemmer brugerID i session og hvis det er nogle sider hvor der er forskel på folk (admin/co-admin/guest/user/vip) så har jeg også typisk en userType = (1,2,3,4,5) for hurtigt at tjekke på hvad en bruger har rettigheder til.

Det tager lidt tid at hendte fra datbasen, men der er jo kun har man skal ændre i sin profil og så gør det ikke så meget.
Avatar billede Slettet bruger
01. maj 2002 - 23:21 #6
eagleeye>>

vil du ikke være venlig at kigge her, da der er noget du sandsynligvis kan hjælpe med ?

http://exp.dk/spm/204804

casualty>> undskyld jeg fylder din tråd med dette
Avatar billede doc404 Novice
02. maj 2002 - 02:00 #7
Session variabler er ikke specielt "hårde" ved en server - Og inden jeg bliver overfaldet så lad mig lige forklare...

Jo - En session variable bruger memory på din web server. Men hvor meget gemmer du og hvormange samtidige brugere har du? Lad os antage at du i dit tilfælde gemmer sådan ca. 100 bytes. Har du 20 samtidige brugere er det altså 2000 bytes + overhead - lad os da bare sige 4KB. Det er ingen ting på en NT server... Bevares køre du på et webhotel hvor 500 andre websites gør det samme så bruger i samlet omkring 2MB - men så er i også 10000 samtidige brugere.... Og så er memory ikke dit problem ;-)

At lave et SQL kald koster umådelig meget i sammenligning med at bruge session variabler. Så SQL løsningen spare intet mht. til performance eller memory forbrug - med mindre du altså smider record sets eller flere 100kb i dine session variabler (men det er der vel heller ingen normale menneske der gør vel?)

Problemet med session variabler er cookies og skalerbarhed.

For at bruge session variabler skal brugerens browser accepterer per-session cookies og gør de ikke det så dør din applikation.

Session variabler eksistere kun på en server og hvis du benytter et server cluster kan du ikke *i følge bogen* bruge session variabler. Der findes løsninger til at overkomme dette - men det kræver du tænker dig lidt om.

Så forsæt du bare med at bruge session variabler - men lad være med at svine med dem ;-)
Avatar billede casualty Nybegynder
02. maj 2002 - 18:58 #8
Tak alle, for svarene...
Rart at høre lidt om hvad andre synes/gør :)

doc404>> Hvor ofte vil jeg komme ud for at en brugers browser ikke accepterer per-session cookies??
Hvilke browsertyper gør ikke det?
Avatar billede eagleeye Praktikant
02. maj 2002 - 19:11 #9
du kan i IE5.0 selv slå det til og som cookies.
I  Tools->Internet Option -> Security -> Custom Level  Scroll ned til Cookies der kan du slå Cookies samt pre-session cookies til og fra. Det kan man også med Morzille 1.0. Jeg har ikke lige fundet det i IE6.
Avatar billede doc404 Novice
02. maj 2002 - 21:20 #10
Langt de fleste tillader cookie, men der er jo altid nogle hystader imellem (sorry) - men du kan jo selv teste for det...

Sæt en session variable på din indgangs side og check for det på en af de efterfølgende. Kan du læse hvad du skrev er det godt - og hvis ikke, så fortæl brugeren at høn skal tillade session cookies
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
Kurser inden for grundlæggende programmering

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