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
Min.Online
19 svar · 146 visningar · startad av antar
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
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
------------------
essentitia preter non sans multiplicandum
jag vill att man ser hur många min man har varit inne!!!
som typ silverplanet.cc som deras script!!!
Då har du den uträkningen
minutes = datediff("n",cdate(session("logintime")),now())
response.write "du har varit här " & minutes & " minuter <br>"
------------------
essentitia preter non sans multiplicandum
Jaha, då har det blivit något skumt.
Hur ser din kod ut?
------------------
essentitia preter non sans multiplicandum
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]
<%minutes = datediff("n",cdate(session("totalminonline")),now())
response.write "du har varit här " & minutes & " minuter <br>" %>
[Redigerat av antar den 05 dec 2001]
hur gör man om användaren stannat i 20 min så plussas det på 3 poäng i databasen???? tack LarsG
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
hur gör man om användaren stannat i 20 min så plussas det på 3 poäng i databasen???? tack LarsG
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.
------------------
essentitia preter non sans multiplicandum
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å ;)
------------------
"Ni tre går och bildar en kvadrat" (Rolf Zetterlund under ett träningspass)
[Redigerat av iceM2 den 05 dec 2001]
okej sorry :-(
LarsG tack så mycket jag har fixat allt
det va inget fel på ditt kod utan på mig hehehe tack!!
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
connect100.execute "update members set poang = poang + 1, minonline = " & minutes & " , poang = " & poang [b]& " [/b]where id = " & session("id"),,128
------------------
Don't panic!
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
nån som kan hjälpa mig :-o
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?
------------------
Don't panic!