Avatar billede wanda13 Nybegynder
26. september 2001 - 12:23 Der er 14 kommentarer og
1 løsning

SesionID i ASP

Jeg sidder og er ved at lave en online bestillings hjemmeside, og ved ikke ret meget om Session ID?

Hvad gør det og er det altid et tilfældigt nummer den får eller tager den det ud fra noget bestemt og kan det ske ved en tilfælde at 2 får samme nummer?

Hvordan laver man Session IDen, og hvilke dokumenter skal bruge den og hvordan overfører man den?
Jeg har søgt efter hjælp på forskellige sider, men har ikke fundet noget ordentlig brugbart?....

HJÆLP....

Point efter hvordan svar lyder : Kan også blive fere
Avatar billede gnu Nybegynder
26. september 2001 - 12:31 #1
Det er faktisk ok genialt:

1. Der oprettes et sessionobjekt pr. bruger.
2. Her kan man så vælge at oprette x antal sessionvariabler, der hver er bundet til brugeren, fx session(\"passw\")
3. Serveren opretter samtidig en sessionId pr. bruger. Id\'et er oprettet fortløbende, så der er ingen risiko for at to brugere får det samme Id.



Avatar billede toni01 Nybegynder
26. september 2001 - 12:31 #2
Avatar billede tmceu Praktikant
26. september 2001 - 12:42 #3
Der er en lille væsentlig detalje til gnu\'s svar. Microsoft siger eksplicit at du ikke må anvende session id som global unique identifier, d.v.s. som en unik nøgle i eks. en database, da sessionsvariabler kun er unikke i den kørende konfiguration af IIS. D.v.s. at når IIS har været genstartet, kan du risikere at få den samme sessionsid som blev anvendt før IIS blev genstartet.

Derudover kræver brug af cookies at klienten accepterer cookies, da der anvendes en sessionscookie på klienten. I praksis har 95% eller mere af brugerne på internettet cookies aktiveret, men du skal være opmærksom på et potentielt problem her, som i teorien kan udelukke eks. 5% af dine kunder. Der findes metoder til at håndtere sessions uden cookies, men du skal som min. kontrollere for cookies, hvis du vil være helt sikker.

Du kan finde et eksempel på hvordan du kontroller for cookies (og javascript) i online eksemplerne til bogen \"Teach Yourself ASP in 24 Hours\", på www.asp24h.com

Hvis du anvender sessions og klienten ikke understøtter cookies, vil hver request fra klienten blive opfattet som starten på en ny session, og dette saboterer lidt formålet med sessions variabler.

Session ID\'en bliver aut. lavet ved den første request på din side. Når en session starter, kører koden i proceduren sessions_onstart i global.asa, hhv. når den lukkes køres session_onend
Avatar billede tmceu Praktikant
26. september 2001 - 12:46 #4
Sikke noget vrøvl, Derudover kræver brug af cookies at klienten accepterer cookies skulle have været...

Derudover kræver brug af sessions at klienten accepterer cookies
Avatar billede wanda13 Nybegynder
26. september 2001 - 12:56 #5
OK, er der også nogle eksempler, på hvordan man laver det både hvordan det skal se ud i global.asa og hvordan det skal bruges/implementeres på de sider, som skal bruge den?
Avatar billede tmceu Praktikant
26. september 2001 - 13:18 #6
Det er egentlig ret simpelt omkring tildeling og læsning af værdier i sessions variabler

Tildeling: Session(\"Bruger\") = \"Thomas\"
Læsning: Response.Write \"Værdi fra sessions variabel: \" & Session(\"Bruger\")

Med andre ord, du refererer til Session(\"variabel\") både når du vil læse og skrive, mere er der ikke i det.

global.asa ? tænker du på noget specielt, for der er næsten uanede muligheder...
Avatar billede wanda13 Nybegynder
26. september 2001 - 13:20 #7
øhhh (\"bruger\") og Thomas, hvor kommer de værdier fra?
Avatar billede tmceu Praktikant
26. september 2001 - 13:24 #8
I eksemplet Session(\"Bruger\") = \"Thomas\"

tildeles sessionsvariablen \"Bruger\" værdien \"Thomas\"

En sessionsvariabel kan erklæres on the fly og der er derfor ikke noget behov for at initialisere den i eks. session_onstart i global.asa. Men har du en række \"standard\" sessionsvariabler, kan du da godt initialisere den der.

sub session_onstart

session(\"variabel\") = \"Something\"

end sub
Avatar billede wanda13 Nybegynder
26. september 2001 - 13:41 #9
jeg tror desværre ikke helt jeg er med endnu...

for hvis jeg laver sætningen med = \"Et eller andet\" så har den jo værdie (et eller andet) og den skulle jo gene få et nyt navn for hver bruger der kommer ind?

eller er jeg helt forkert på den?
Avatar billede tmceu Praktikant
26. september 2001 - 14:43 #10
Ah, nu er jeg med :-)

Du finder værdien af sessionsid, ved at refere til Session.SessionID

Eks. response.write \"Din sessions ID er: \" & Session.SessionID
Avatar billede wanda13 Nybegynder
26. september 2001 - 14:50 #11
Nej, jeg tænker på hvad når jeg opretter session IDen i feks. global.asa, så kan jeg jo ikke bare tildele den et navn (Som eksemplet med Thomas) den skal jo have en ny værdi for hver der kommer ind på siden, så 2 besøgende aldrig får samme værdi, men hvordan?
Avatar billede tmceu Praktikant
26. september 2001 - 16:06 #12
Som jeg skrev tidligere... \"Session ID\'en bliver aut. lavet ved den første request på din side.\" D.v.s. du opretter ikke en session eller sessions ID, en session er oprettet for dig, og du kan så på eks. default.asp spørge på værdien af session.sessionID

Eksemplet med Session(\"bruger\") = \"Thomas\" er en sessions VARIABEL og har ikke noget med sessionID som sådan at gøre. Dette er en variabel som er gemt i den aktuelle/enkelte session som altså har ID session.sessionID.

Håber dette giver mening :-)
Avatar billede wanda13 Nybegynder
26. september 2001 - 20:59 #13
OK, takker, men ved du også lige hvordan jeg får det kørt ind i en database (Access)
Her er min SQL sætning...

strSQL = \"INSERT INTO bestilt (sessionID, varenr, antal) VALUES (\" & Session.SessionID & \" , \" & request.querystring(\"varenr\") & \", \" & request.querystring(\"antal\") & \")\"


Tabellen i Access hedder bestil og har 4 værdier :
ID - Auto nummering
sessionID - Værdien af sessionen (tal)
varenr - Tekst
antal - Tal

men den kommer hele tiden med denne fejl når jeg forsøger at skrive dertil?

Datatyperne stemmer ikke overens i kriterieudtrykket.


Avatar billede gnu Nybegynder
26. september 2001 - 21:13 #14
Jeg kan IKKE se, at jeg har sagt noget forkert/modstridende/nyt i forhold til andre svar - ok, Browseren skal understøtte cookies, men!!!

- så hvorfor den afvisning! Ligeglad med pointene - men mere nysgerrig!
Avatar billede wanda13 Nybegynder
26. september 2001 - 21:16 #15
øhhh, kun fordi, jeg ikke helt fik fanget pointen i svaret, da det var det hele jeg faktisk var ude efter om det, men jo, du har ret, det var en fejl af mig, da du selvfølgelig også havde skrevet noget, og hvis du vil, kan jeg godt oprette et spørgsmål til og give dig lidt point der så :-)
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