19. august 1999 - 08:00Der 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
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).
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.
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.
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()".
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.
Synes godt om
Ny brugerNybegynder
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.