webForumDet fria alternativet

Känna av id på aktiva sessions?

ASP

5 svar · 277 visningar · startad av Lina

Medlem sedan jan. 2001332 inlägg
Frågan#1

Hej!

Håller ju på att bygga en shop.
I min databas har jag en tabell för varukorgen. I den tabellen identifieras kunden med hjälp av sessionid. När kunden sedan beställer varorna läggs alla data från denna tabell över i en ordertabell. Då raderas även korgtabellen. Men jag vill också att administratören skall kunna gå in och rensa bort oavslutade köp. För att kunna göra det behöver jag kunna känna av vilka sessionId som är aktiva, bara för att inte sopa rent hus hos de kunder som håller på att handla....

Är det någon som vet hur man gör, eller behöver jag bygga om databasen???

------------------
Du lever bara en gång och den gången är nu!

Medlem sedan feb. 20013 023 inlägg
#2

Är visserligen ingen mästare på detta men: om det inte är väldigt mycket i korgen (el känslig info) kan man spara det i cookies istället. Alt sessions. När kunden sedan bekräftar beställningen så skriver du till ordertabellen. M h a Sessions och cookies slipper administratören rensa oavslutade köp om du gör på rätt sätt.
kunden indentifieras med sessionsid, men du genererar väl inte primärnyckelvärden med den? Det är nämligen inte bra

Medlem sedan jan. 2000144 inlägg
#3

Hej

Några rader från M$ manualen:

Remarks
You should not use the SessionID property to generate primary key values for a database application. This is because if the Web server is restarted, some SessionID values may be the same as those generated before the server was stopped. Instead, you should use an auto-increment column data type, such as IDENTITY with Microsoft SQL Server, or COUNTER with Microsoft Access.

Dvs. När kunden börjar handla kan du generera en top varukorg och samtidigt generera ett unikt varukorgs-nummer som du sparar i användarens Session. Använd sedan detta nummer i stället för SessionID.

Men jag vill också att administratören skall kunna gå in och rensa bort oavslutade köp

Ett sätt är att ha en datum kolumn som håller reda på när varukorgen skapades. Man kan sedan rensa bort varukorgar som är äldre än 1 dag. Man kan nog förmoda att ingen håller varukorgen "igång" mer än 24 timmar.

Medlem sedan juli 20003 825 inlägg
#4

[Förslag]
lägg till datum,

x_date - datum

SQL = "DELETE * FROM [basket] WHERE [x_date] <= #" & date() -1 & "#;"
Conn.Execute(SQL)

[/förslag]

------------------
Never underestimate your opponents.

Medlem sedan jan. 2001332 inlägg
#5

Tack Eclipse!!!

Till er andra... Givetvis genererar jag inte primärnyckel i session... Men i min shop krävs det en inlogging för att bekräfta att man är kund när man skall lägga ordern. I samband med att ordern läggs byts sessionId ut mot kundens id som finns i databasen....
Men för att lägga ner poster i korgtabellen behöver man inte vara inloggad...Förstår ni???

:h

------------------
Du lever bara en gång och den gången är nu!

Medlem sedan juli 20003 825 inlägg
#6

Men för att lägga ner poster i korgtabellen behöver man inte vara inloggad...Förstår ni???

Ja, jag har ett likadant system. Men när jag byggde mitt så var jag inte så förutséende att ha med datumfältet... tror jag... (lite olikt mig faktiskt) Hur som helst, det blit bara fler och fler poster i mitt system men det är inte så stor trafik till webbplatsen så det är rätt okej. Det får vara så tills vidare!

Mitt system är som "moduler" och man kan bara kopy/paste mellan olika kunder. Faktiskt rätt praktiskt och en feature jag inte tänkte på från början.

------------------
Never underestimate your opponents.

257 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)