Avatar billede cdc Novice
24. april 2004 - 11:45 Der er 20 kommentarer og
2 løsninger

Se hvormange gange en bruger er logget ind

Kan man på en nem måde lave et eller andet så man kan se hvormange gange en bruger er logget ind på siden.

min db er en access db og tabellerne er id - user - password.

Hvis jeg laved en tabel med navn hits er det her inde jeg vil have smidt antal inlogginger.

Men hvad skal jeg skrive i login scriptet ?

/cdc
Avatar billede websam Nybegynder
24. april 2004 - 11:51 #1
Lav et felt i tabellen der heder hits og tilføj følgende til dit login script :

Sql = "Update LoginTabel Set Hits = Hits + 1"
Conn.Execute(Sql)

/Websam
Avatar billede websam Nybegynder
24. april 2004 - 11:52 #2
Ups sådan her :

Sql = "Update LoginTabel Set Hits = Hits + 1 Where Id = "&Session("Id")&""
Conn.Execute(Sql)
Avatar billede cdc Novice
24. april 2004 - 12:02 #3
Jeg har denne kode og kan ikke helt se hvor jeg skal smide det ind

<%
SET RS = Server.CreateObject("ADODB.Connection")
rs.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("xxxx.mdb")

If Request("mode") = "Check" then

Function unQuote(strTekst)
  strTekst = Trim(strTekst)
  unQuote = Replace(strTekst,"%","53")
End Function

    ' Gemmer formfelterne i Variabler
        strUsername = unQuote(request("username"))
        strPassword = unQuote(request("password"))

  Sql = "Select Count(*) as Found from user where (username = '" & strUsername  & "') and (password ='" & strPassword  & "')"
  Set LO = RS.Execute(Sql)
  if LO("Found") = 0 then
    Session("login") = ""
    error = "Du blev ikke godkendt af systemet"
  else
  strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("xxxx.mdb")
  Set myConn = Server.CreateObject("ADODB.Connection")
  myConn.Open strDSN
  strSQL = "SELECT * FROM user where (username = '" & Request("username") & "') and (password ='" & Request("password") & "')"
  Set ez = myConn.Execute(strSQL)
    Session("login") = "yes mate"
    Response.Redirect "index.asp"
    EZ.Close
    RS.Close
    Conn.Close
  end if
end if
%>
Avatar billede websam Nybegynder
24. april 2004 - 12:07 #4
Skift dette ud :

Session("login") = "yes mate"
Response.Redirect "index.asp"
EZ.Close
RS.Close
Conn.Close

Med Dette :

Session("login") = "yes mate"
Session("Id") = ez("Id")
Sql = "Update user Set Hits = Hits + 1 Where Id = "&Session("Id")&""
myConn.Execute(Sql)
Response.Redirect "index.asp"
EZ.Close
RS.Close
Conn.Close

Og husk at få tilføjet et felt med navenet Hits i din db :o)

/Websam
Avatar billede cdc Novice
24. april 2004 - 12:17 #5
Den skriver intet i databasen har lavet tabellen hits og som tal, men der kommer intet?
Avatar billede koldy Nybegynder
24. april 2004 - 12:37 #6
prøv at sæt  standart værdi på hits i databasen til 0
Avatar billede cdc Novice
24. april 2004 - 12:43 #7
den står til nul som standardværdi, når man vælger tal og langt heltal i designvisning
Avatar billede koldy Nybegynder
24. april 2004 - 12:47 #8
ved ikke om du er klar over det, men vil da lige pointere at du har et sikkerheds hul i den kode der, prøv at logge ind med
Brugernavn: 'or '1'='1
password: 'or '1'='1
problemet løser du ved at bytte dette ud

        strUsername = unQuote(request("username"))
        strPassword = unQuote(request("password"))

med dette

        strUsername = Replace(unQuote(request("username")),"'","''")
        strPassword = Replace(unQuote(request("password")),"'","''")
Avatar billede koldy Nybegynder
24. april 2004 - 12:52 #9
Nå ja. også rigtig, længe siden jeg har arbejdet med Access.. hvor dit problem ligger så.. men prøv at lave denne linje
Sql = "Update user Set Hits = Hits + 1 Where Id = "&Session("Id")&""
om til
Sql = "Update user Set Hits = " & ez("Hits") + 1 & " Where Id = "&Session("Id")&""
Avatar billede koldy Nybegynder
24. april 2004 - 12:54 #10
for du ingen fejl?
Avatar billede cdc Novice
24. april 2004 - 14:09 #11
Jeg får ingen fejl, den fiser bare igennem til den side som den skal men kigger lige
Avatar billede websam Nybegynder
24. april 2004 - 14:11 #12
Så sæt dit hits felt default til 1 så virker det :o)

/Websam
Avatar billede cdc Novice
24. april 2004 - 14:14 #13
nu har jeg lavet det om som du siger koldy, men får denne fejl

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.

/login.asp, line 69
Avatar billede cdc Novice
24. april 2004 - 14:22 #14
ni har jeg sat den til standarværdi 1 i tabellen, men keine hits udfor mit login navn i tabellen
Avatar billede websam Nybegynder
24. april 2004 - 14:29 #15
Det forstår jeg ikke det burde virke jeg bruger selv denne :

Sql = "Update user Set Hits = Hits + 1 Where Id = "&Session("Id")&""

og har lige testet det virker fint ?!?

/Websam
Avatar billede websam Nybegynder
24. april 2004 - 14:30 #16
Prøv lige at sætte dette ind :

Hits = ez("Hits")
Sql = "Update user Set Hits = "&Hits&" + 1 Where Id = "&Session("Id")&""
Avatar billede cdc Novice
24. april 2004 - 14:37 #17
det sker intet i db
Avatar billede cdc Novice
24. april 2004 - 14:40 #18
Nu fungerer den
Avatar billede cdc Novice
24. april 2004 - 14:41 #19
koldy smider du ikke lige et svar også
Avatar billede koldy Nybegynder
24. april 2004 - 16:19 #20
der
Avatar billede koldy Nybegynder
24. april 2004 - 16:20 #21
men synes nu også websam skal ha en del af dem, jeg omskrev bare lidt af hans.. :)
Avatar billede koldy Nybegynder
24. april 2004 - 16:21 #22
upzz. sorry, læste vist ikke det hele.. sorry (se lige bort fra min forige kommentar) :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester