webForumDet fria alternativet
Logga in / Bli medlem

Poängsystem

ASP

13 svar · 277 visningar · startad av ampy

Medlem sedan feb. 20011 498 inlägg
Trådstart#1

Jag håller på med ett community och jag vill att varje gång någon loggar in så ska den medlemmen få en poäng. Hur gör man det. Ska man skapa en ny tabell i databasen eller?

Medlem sedan juni 200032 967 inlägg
#2

Jag hade lagt till ett fält i medlemstabellen, intInloggningar.

Jag hade vid varje inloggning kört en update-fråga likt denna:

strSQL="UPDATE tblMedlemmar SET intInloggningar = intInloggningar + 1 WHERE intUserID = " & ID

På ett ungefär.

Medlem sedan feb. 20011 498 inlägg
#3

Vad ska jag lägga denna kod:

strSQL="UPDATE tblMedlemmar SET intInloggningar = intInloggningar + 1 WHERE intUserID = " & ID

I aspfilen login_check.asp eller.

Medlem sedan juni 200032 967 inlägg
#4

Ja, det blir väl bra. Du måste dock anpassa den efter din tabellstruktur och sida i övrigt, men generellt:

  1. Du kollar inloggningen mha en select-query. Se till att du får ut ID i den frågan.
  2. Använd det ID:t som variabel i din update-query som du kör direkt efter.

Mvh,

Medlem sedan feb. 20011 498 inlägg
#5

Jag förstår inte vart jag ska lägga in den koden som jag fick i login_check.asp

Hela filen ser ut så här:

<!-- #include file="adovbs.inc" -->

<%

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("members.mdb")&";pwd=losen"

Set RecSet = Server.CreateObject("ADODB.Recordset")

Addera = "Select * From members"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

'----- Rensar bort sånna som inte loggat ut korrekt.. -------

Do Until RecSet.EOF

If RecSet("status") = "online" AND DateDiff("n", RecSet("datum"), Now) \> 45 Then
	RecSet("status") = "offline"
	RecSet.Update
End If

RecSet.MoveNext
Loop

RecSet.Close

'---------------- SLUT PÅ UTRENSNINGEN ------------------

RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

Do Until RecSet.EOF

If RecSet("username") = Request.Form("username") AND RecSet("losen") = Request.Form("losen") Then

	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.TimeOut = 40 '\<-- Kontrollera

	RecSet.Close
	Connect.Close
	Set RecSet = nothing
	Set Connect = nothing
	
	Response.Redirect "index2.html"

End If

RecSet.MoveNext
Loop

RecSet.Close
Connect.Close
Set RecSet = nothing
Set Connect = nothing
Session("meddelande") = "Tyvärr! Fel användarnamn eller lösenord. Försök igen!"
Response.Redirect "index.html"

%>

Medlem sedan juni 200032 967 inlägg
#6

Utan att rota för mycket i din kod,

.
.
.
Session("login") = "ok"
Session("id") = RecSet("id")
Session("status") = "online"
Session("epost") = RecSet("epost")

Session.TimeOut = 40 '<-- Kontrollera

[b]strSQL="UPDATE members SET intInloggningar = intInloggningar + 1 WHERE intUserID = " & RecSet("id")
Connect.execute (strSQL)[/b]

RecSet.Close
Connect.Close
Set RecSet = nothing
Set Connect = nothing

Response.Redirect "index2.html"
.
.
.
Medlem sedan feb. 20011 498 inlägg
#7

Nu funkar det inte att logga in, det blir detta felmeddelande:

Microsoft OLE DB Provider for ODBC Drivers fel '80040e10'

[Microsoft][Drivrutin för ODBC Microsoft Access] För få parametrar angavs. 2 förväntades.

/community/login_check.asp, rad 52

Medlem sedan juni 200032 967 inlägg
#8

Vad heter ditt inloggningsräkningsfält? Datatyp?

Du får se till att ändra så fältnamnen stämmer i frågan, jag kollade inte så noga.

Medlem sedan feb. 20011 498 inlägg
#9

Jag får det inte att fungera, kan ingen hjälpa mig?

Medlem sedan juni 200032 967 inlägg
#10

Om du svarar på mina två frågor i mitt inlägg ovan, så är det en bra början.

Mvh,

Medlem sedan feb. 20011 498 inlägg
#11

mitt fält heter poang och jag använder access.

Medlem sedan feb. 20012 412 inlägg
#12

@nders menar nog datatypen på fältet poang, är det ett fält av numerisk sort eller text?

mvh Jörgen

Medlem sedan feb. 20011 498 inlägg
#13

det är text - sorten

Medlem sedan juni 200032 967 inlägg
#14

Den skall vara av typen tal.

Ändra det, och se till att du skriver poang i stället för intInloggningar, så bör det fungera.

388 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
134 ms — deklarationer (db)
122 ms — hämta statistik (db)
128 ms — hämta tråd, inlägg och bilagor (db)
134 ms — ändringar (db)