Avatar billede Slettet bruger
19. august 1999 - 08:00 Der er 16 kommentarer og
1 løsning

Session ID

Er der nogen der kan hjælpe mig med et session spørgsmål.
Jeg skal lave et shopping system og er kommet til en grim milepæl der hedder indkøbskurv.
Jeg er i den forbindelse nødt til at have nogle oplysninger.
Hvordan kan jeg lægge et vareID i en tabel sammen med et sessionID.
Jeg vil gerne have detaljer.
Hvordan udtrækker jeg foreksempel et sessionID.
OSV OSV
Avatar billede sone Nybegynder
19. august 1999 - 09:30 #1
SessionID fiskes ud med funktionen Session.SessionID.

Du laver en tabel i DB, som har felterne

-Dato
-SessionID
-VareID
-Antal

Når en kunde vil lave den endelige bestilling, så se hvad han har stående i tabellen.
Ting som er lave i kurven, men aldrig bestilt kan slettes efter x dage (alt efter DB plads).
Avatar billede s Nybegynder
19. august 1999 - 09:50 #2
Du laver den tabel med følgende felter:

Dato
SessionID
Vare

Når du så sætter en ny vare ind sætter du varenavn og ";" ind. Så kan du bruge Split(rs("varenavn"), ";") til at få lavet en array over alle vare.
Avatar billede Slettet bruger
19. august 1999 - 10:08 #3
Kan den uddybes.
Jeg er ikke helt med
Avatar billede erikjacobsen Ekspert
19. august 1999 - 14:04 #4
En sessionID er principielt ikke unik. Når en session er aktiv, kan ingen
få den ID, men kører serveren længe nok, eller genstartes kan ID-er
blive genbrugt. Det jeg vil sige er: overvej at lave dit eget ID i en
sessionsvariabel.
Avatar billede sone Nybegynder
19. august 1999 - 14:13 #5
Det er rigtige, men...
Inden man får brugt alle sessionID's (et 9 cifret tal), så har brugeren sikkert handlet eller glemt alt...

En anden måde er (som foreslået tidligere) at gemme datoen sammen med SessionID - for tilsammen at gøre disse to felter unikke.
Avatar billede Slettet bruger
19. august 1999 - 15:48 #6
Ja det er fint men hvad er koden for at tildele brugere unikke IDer
Skal jeg bruge en cookie eller hvad

ASPyyyyha
Avatar billede sone Nybegynder
19. august 1999 - 15:49 #7
Det sker helt automatisk af ASP systemet.
Avatar billede petter Nybegynder
19. august 1999 - 16:02 #8
Hvordan kan jeg så smide dette ID
ned i min database?

Foreksempel hvis jeg skal lægge et produktid sammmen med en sessionid i dben når man går til indkøbsvognen.
Avatar billede s Nybegynder
19. august 1999 - 19:21 #9
Lav en Access-database med følgende felter:

Dato
ID
Vare


Så laver du en if-sætning når en bruger kommer ind på den første side (det skal være det første på siden):

if Request.Cookies("Ditnavncookie")("ID") = "" then
Set Conn = Server.CreateObject("ADODB.connection")
Conn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("Dindatabase.mdb")
Sql = "SELECT count(*) AS antal FROM tabelnavn ORDER BY dato DESC"
Set rs = Conn.execute( Sql )
Response.Cookies("Ditnavncookie").expires = date + 30
Response.Cookies("Ditnavncookie").domain = "ditdomain"
Response.Cookies("Ditnavncookie")("ID") = rs("Antal") + 1
Set rs = Nothing
Conn.close
Set Conn = Nothing

Når så en bruger putter en vare i kurven skriver du:

Set Conn = Server.CreateObject("ADODB.connection")
Conn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("Dindatabase.mdb")
Sql = "SELECT * FROM tabelnavn WHERE id=" & request.Cookies("Ditnavncookie")("ID")
Sql = "UPDATE * FROM tabelnavn SET vare='" & rs("Vare") & ";" & Varenavn & "' WHERE id=" & request.Cookie("Ditnavncookie")("ID")
Conn.execute( Sql )
Set rs = Conn.execute( Sql )
Set rs = Nothing
Conn.close
Set Conn = Nothing


Håber du kan bruge dette. Ellers må du skrive igen.
Avatar billede s Nybegynder
19. august 1999 - 19:22 #10
Det skal lige siges at felterne skal se ud som følger:

Dato = "Dato og klokkeslet" (Standartværde: "=Now()")
ID = Autonummerering
Vare = Notat
Avatar billede s Nybegynder
19. august 1999 - 19:23 #11
Standartværde = Standartværdi
Avatar billede erikjacobsen Ekspert
19. august 1999 - 20:56 #12
Standartværdi = Standardværdi        :-) just kidding
Avatar billede Slettet bruger
20. august 1999 - 09:44 #13
Mange tak S
Du definerer på et tidspunkt antal
er det et ekstra felt i min tabel?

Det ville måske hjælpe mig hvis du gad skrive sqlén på dansk.
Eks. Select tabelnavn(X) fra feltet (X)
hvor osv osv
Avatar billede Slettet bruger
20. august 1999 - 10:07 #14
Jeg kan ikke få lov til at definerer
standardværdien i access.

Den siger der er for mange afsluttende parametre?
Avatar billede s Nybegynder
20. august 1999 - 15:21 #15
Standardværdi = Standardværdi :)


Det var sone der skrev det med feltet vare. Det skal du ikke have med. Du definerer standartværdien i et felt ved at åbne en table i acces og vælge designvisning. Så finder du feltet og på den nederst fane kan du vælge standartværdien. Der skriver du "=Now()".
Avatar billede sone Nybegynder
20. august 1999 - 15:29 #16
NOT!  ;-)
Avatar billede s Nybegynder
20. august 1999 - 15:33 #17
Nåh... det havde jeg godtnok skrevet. Men det er ikke et felt i databasen...


Fant lige en fejl i koden der putter en ny vare i men har ikke lige tid til at rette det nu.
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