webForumDet fria alternativet
Logga in / Bli medlem

Min.Online

ASP

19 svar · 148 visningar · startad av antar

Medlem sedan dec. 2001289 inlägg
Trådstart#1

Hejsan kan ni hjälp mig med en sak!!
jag håller på med en liten community jag vill att när medlemen loggar in så ska det starta nån slags timer som räknar hur många min som användaren har varit i sidan och så ska det sparas i databasen och när han sedan loggar ut så ska timern stoppas

Medlem sedan aug. 2001112 inlägg
#2

Du kan ju även spara tiden när personen loggas ut...räkna sedan ut tiden mellan inloggning och utloggning och plussa sedan på tiden i ett "tid online fält" i databasen...

Det är en lösning

@EchO

Medlem sedan dec. 200012 464 inlägg
#3

Då kan det vara lämpligt att lagra det värdet i en sessionvariabel.

'vid inloggning
session("loginTime") = now()
session("userid") = userid

vad vill du spara i databasen. Bara tiden för det senaste besöket eller alla besök?

Nu vet jag inte hur dina tabeller ser ut men jag antar att du har någon där du sparar information om olika användare.

Om du bara vill spara tiden för senaste
besöket så

'vid utloggning
minutes = datediff("n",cdate(session("logintime")),now())
set connect = server.createobject("adodb.connection")
connect.open "dsn"
connect.execute "update users set visitTime = " & minutes & " where userid = " & session("userid"),,128
connect.close
Medlem sedan dec. 2001289 inlägg
#4

jag vill att man ser hur många min man har varit inne!!!

som typ silverplanet.cc som deras script!!!

Medlem sedan dec. 200012 464 inlägg
#5

Då har du den uträkningen

minutes = datediff("n",cdate(session("logintime")),now())
response.write "du har varit här " & minutes & " minuter <br>"
Medlem sedan dec. 2001289 inlägg
#6

nu blev det såhär istället för min

53611174

Medlem sedan dec. 200012 464 inlägg
#7

Jaha, då har det blivit något skumt.
Hur ser din kod ut?

Medlem sedan dec. 2001289 inlägg
#8
RecSet("datum") = Now
RecSet("status") = "online"

RecSet.Update

Session("namn") = RecSet("fnamn") & " " & RecSet("enamn")
Session("fnamn") = RecSet("fnamn")
Session("enamn") = RecSet("enamn")
Session("Username") = RecSet("Username")
Session("login") = "ok"
Session("id") = RecSet("id")
Session("status") = "online"
Session("epost") = RecSet("epost")
session("totalminonline") = now()

Session.TimeOut = 40

minutes = datediff("n",cdate(session("totalminonline")),now())
connect.execute "update members set totalminonline = " & minutes & " where id = " & session("id"),,128

strSQL="UPDATE members SET poang = poang + 1 WHERE ID = " & Session("id")
Connect.execute (strSQL)

strSQL="UPDATE members SET loggatin = loggatin + 1 WHERE ID = " & Session("id")
Connect.execute (strSQL)

[Redigerat av antar den 05 dec 2001]

Medlem sedan dec. 2001289 inlägg
#9

<%minutes = datediff("n",cdate(session("totalminonline")),now())
response.write "du har varit här " & minutes & " minuter <br>" %>

[Redigerat av antar den 05 dec 2001]

Medlem sedan dec. 2001289 inlägg
#10

hur gör man om användaren stannat i 20 min så plussas det på 3 poäng i databasen???? tack LarsG

Medlem sedan dec. 2001289 inlägg
#11

men larsG tiden sparas ej i databasen vill att när man loggar in så startas tiden och sen när man loggar ut som nollställs den till 0

Medlem sedan dec. 2001289 inlägg
#12

hur gör man om användaren stannat i 20 min så plussas det på 3 poäng i databasen???? tack LarsG

Medlem sedan dec. 200012 464 inlägg
#13

Om du lägger den här koden vid utloggningen

minutes = datediff("n",cdate(session("totalminonline")),now())

if minutes > 20 then
   points = 3
else
   points = 1
end if
connect.execute "update members set loggatin = loggatin + 1, totalminonline = " & minutes & " , poang = " & points where id = " & session("id"),,128

så. Om du räknar ut antal minuter när man loggar in så blir det alltid 0.

Varför du får det där höga värdet på antalet minuter förstår jag inte.

Medlem sedan mars 2001243 inlägg
#14

till antar: Nu är inte jag forumledare här Men... istället för att skriva fyra väldigt korta meddelanden på raken så kan du väl redigera det första korta befintliga meddelandet med tillägsfrågor?

Inget illa menat men det blir lite trevligare då ;)

Medlem sedan dec. 2001289 inlägg
#15

okej sorry :-(
LarsG tack så mycket jag har fixat allt
det va inget fel på ditt kod utan på mig hehehe tack!!

Medlem sedan dec. 2001289 inlägg
#16

fel på kod:
Kompileringsfel i Microsoft VBScript (0x800A0401)
Slut på programsats förväntas.

connect100.execute "update members set poang = poang + 1, minonline = " & minutes & " , poang = " & poang where id = " & session("id"),,128
Medlem sedan juni 200032 967 inlägg
#17
connect100.execute "update members set poang = poang + 1, minonline = " & minutes & " , poang = " & poang [b]& " [/b]where id = " & session("id"),,128
Medlem sedan dec. 2001289 inlägg
#18

fel:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E37)
[Microsoft][Drivrutin för ODBC Microsoft Access] Microsoft Jet kan inte hitta tabellen eller frågan 'poang'. Kontrollera att den existerar och att namnet är rätt stavat
/status.asp, line 95

set connect100 = server.createobject("adodb.connection")
Connect100.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("Database/members.mdb")&";pwd=losen"
minutes = datediff("n",cdate(session("minonline")),now())
if minutes > 20 then
points = 3
else
points = 1
end if
connect100.execute "update poang set poang = poang + 1, minonline = " & minutes & " , poang = " & points &" where id = " & session("id"),,128

Connect100.close
Set Connect100 = nothing
Medlem sedan dec. 2001289 inlägg
#19

nån som kan hjälpa mig :-o

Medlem sedan juni 200032 967 inlägg
#20

nu när jag ser efter ser frågan konstig ut.

Vad ska in i poängfältet? Variabeln points eller ska den ökas med ett? Du ska inte ha med fältet poang två gånger i listan.

Heter din tabell verkligen poang?

264 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)