01. august 2003 - 10:26Der er
5 kommentarer og 1 løsning
Indsæt SessionID i Database
Jeg er ved at lave et online brugersystem og har et script der går ind og opdaterer tabellen ved ny indlæsning af siden hvis ID'et passer med det i databasen, ellers indsætter den et nyt.. Jeg har dog et problem, hvis databasen er tom vil den ikke indsætte nogen data, den skriver bare en fejl.. Scriptet er her: <% Set rsOnline = Server.CreateObject("ADODB.Recordset") strSQL = "SELECT * From TblOnline" rsOnline.Open strSQL, strCon If Session.SessionID = rsOnline("SessionID") Then Set rsOnline = Server.CreateObject("ADODB.Recordset") strSQL = "UPDATE TblOnline SET Opdateret='" & Now() & "' WHERE SessionID='" & Session.SessionID & "'" rsOnline.Open strSQL, strCon Else Set rsOnline = Server.CreateObject("ADODB.Recordset") strSQL = "INSERT INTO TblOnline (" &_ "SessionID, Opdateret) " &_ "values('" & Session.SessionID & "', '" & Now() & "')" rsOnline.Open strSQL, strCon End If %> Og Fejlen den skriver er her: error '80020009' Exception occurred.
du mangler at tjecke for om netop databasen er tom - prøv;
<% Set rsOnline = Server.CreateObject("ADODB.Recordset") strSQL = "SELECT * From TblOnline" rsOnline.Open strSQL, strCon if not rsOnline.eof then If Session.SessionID = rsOnline("SessionID") Then Set rsOnline = Server.CreateObject("ADODB.Recordset") strSQL = "UPDATE TblOnline SET Opdateret='" & Now() & "' WHERE SessionID='" & Session.SessionID & "'" rsOnline.Open strSQL, strCon Else Set rsOnline = Server.CreateObject("ADODB.Recordset") strSQL = "INSERT INTO TblOnline (" &_ "SessionID, Opdateret) " &_ "values('" & Session.SessionID & "', '" & Now() & "')" rsOnline.Open strSQL, strCon End If end if %>
Sejt det virker..;) Jeg havde overhovedet ikke selv tænkt på det..:) Det er nu ændret og det virker.. Jeg skal også have lavet sådan at hvis der er en bruger der ikke har opdateret siden i ca 5-10min skal han slettes fra databasen.. Hvordan gør jeg det?? Er ikke så stiv i det der med sessions og tid..:)
enten skal du lave en session.timeout i global.asa på de 5-10 minutter og så i session.onend køre en sql der sletter brugeren fra db.
eller også skal din sql se ud noget a la dette;
strSQL = "SELECT * From TblOnline WHERE SessionID = '" & Session.SessionID & "' AND opdateret < '" & dateadd("n", 5, now()) & "'"
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.