Avatar billede pho2ke Nybegynder
04. januar 2005 - 19:05 Der er 11 kommentarer og
3 løsninger

Login med tidsstempel

Hej eksperter...

Jeg har en hjemmeside hvorpå jeg har et login til at komme ind bag ved for at opdatere...

Det jeg mangler til login er at der laves et tidsstempel for hvornår der sidst er blevet logget på..

Denne tidsstempel skal bare overskrives/opdateres hver gang der bliver logget på. Dvs. at jeg ikke har brug for at se hvor tit der er blevet logget på.

Jeg vil helst at tidsstemplet bliver registreret i en tabel for sig selv..

Er der nogen der kan hjælpe med det?

/ Toke

Kode til login:
--------------------
<%
SET RS = Server.CreateObject("ADODB.Connection")
rs.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db/fpdb/sha.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("db/fpdb/sha.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 "default_safe.asp?path=1s"
    EZ.Close
    RS.Close
    Conn.Close
  end if
end if
%> <form method="POST" action="login.asp"><input type="hidden" name="mode" VALUE="Check"><div align="center"><table border="0" width="90%" id="table1" cellpadding="0"><tr><td align="center"><font face="Verdana" size="1">Brugernavn:<br></font><input class='text' type='text' name='username' size='15' style='font-family: Verdana; font-size: 8 pt' value="<%=strbrugernavn%>"></font></td></tr><tr><td align="center"><font class="header"><font face="Verdana" style="font-size: 8pt">Password:<br></font><input class="text" type="password" value="<%=strpassword%>" name="password" size="15" style="font-family: Verdana; font-size: 8 pt"></font></td></tr><tr><td align="center"><input class="text" type="submit" value="Login" name="submit" style="font-family: Verdana; font-size: 8 pt"></td></tr></table></div></form><head><title>Adgangskontrol</title></head>
-------------------------------
Avatar billede pho2ke Nybegynder
04. januar 2005 - 19:06 #1
Koden lidt mere overskueligt for håbentligt...

------------------------
<%
SET RS = Server.CreateObject("ADODB.Connection")
rs.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db/fpdb/sha.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("db/fpdb/sha.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 "default_safe.asp?path=1s"
    EZ.Close
    RS.Close
    Conn.Close
  end if
end if
%> <form method="POST" action="login.asp"><input type="hidden" name="mode" VALUE="Check"><div align="center"><table border="0" width="90%" id="table1" cellpadding="0"><tr><td align="center"><font face="Verdana" size="1">Brugernavn:<br></font><input class='text' type='text' name='username' size='15' style='font-family: Verdana; font-size: 8 pt' value="<%=strbrugernavn%>"></font></td></tr><tr><td align="center"><font class="header"><font face="Verdana" style="font-size: 8pt">Password:<br></font><input class="text" type="password" value="<%=strpassword%>" name="password" size="15" style="font-family: Verdana; font-size: 8 pt"></font></td></tr><tr><td align="center"><input class="text" type="submit" value="Login" name="submit" style="font-family: Verdana; font-size: 8 pt"></td></tr></table></div></form><head><title>Adgangskontrol</title></head>
Avatar billede -mundi- Nybegynder
04. januar 2005 - 19:36 #2
start med at tilføje feltet lastlogin til din brugerdatabase, eftersom du kun skal registrere sidste logintidspunkt, er der ingen grund til at ligge det i en seperat tabel, med mindre du slf har en god grund til det :-) .

Har ryddet lidt ud i din kode, håber det er til at hitte ud af :-)


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


if request.form("mode") = "Check" then
    'åbner database forbindelse
    set conn = Server.CreateObject("ADODB.Connection")
    conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db/fpdb/sha.mdb")

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

    strSQL = "SELECT * FROM user where (username = '" & Request("username") & "') and (password ='" & Request("password") & "')"
    set rs = conn.execute(strSQL)

    if not rs.eof then ' er der nogen brugere som match søgekriterierne
        Session("login") = ""
        error = "Du blev ikke godkendt af systemet"
        Conn.Close
        set conn = nothing
        set rs = nothing
    else
        Session("login") = rs.fields("id").value 'går ud fra der er et idfelt i din brugerdatabase
        conn.execute("Update user set lastlogin = now")
        Conn.Close
        set conn = nothing
        set rs = nothing
        response.Redirect "default_safe.asp?path=1s"
    end if
end if
%><form method="POST" action="login.asp"><input type="hidden" name="mode" VALUE="Check"><div align="center"><table border="0" width="90%" id="table1" cellpadding="0"><tr><td align="center"><font face="Verdana" size="1">Brugernavn:<br></font><input class='text' type='text' name='username' size='15' style='font-family: Verdana; font-size: 8 pt' value="<%=strbrugernavn%>"></font></td></tr><tr><td align="center"><font class="header"><font face="Verdana" style="font-size: 8pt">Password:<br></font><input class="text" type="password" value="<%=strpassword%>" name="password" size="15" style="font-family: Verdana; font-size: 8 pt"></font></td></tr><tr><td align="center"><input class="text" type="submit" value="Login" name="submit" style="font-family: Verdana; font-size: 8 pt"></td></tr></table></div></form><head><title>Adgangskontrol</title></head>
Avatar billede -mundi- Nybegynder
04. januar 2005 - 19:37 #3
Doh, der er vist en mindre fejl i linien :
if not rs.eof then ' er der nogen brugere som match søgekriterierne

skal du slette "not"
Avatar billede pho2ke Nybegynder
04. januar 2005 - 20:11 #4
Vil det også virke når der er flere brugere ??

Jeg skal bruge login tidspunktet til at lave en senest redigeret ting
Avatar billede -mundi- Nybegynder
04. januar 2005 - 20:12 #5
ja det vil virke med flere brugere
Avatar billede pho2ke Nybegynder
04. januar 2005 - 20:13 #6
prøver det lige....
Avatar billede pho2ke Nybegynder
04. januar 2005 - 20:15 #7
Skal feltet lastlogin være af en bestemt type?
tekst, tal ????
Avatar billede -mundi- Nybegynder
04. januar 2005 - 20:16 #8
det skal være et dato felt
Avatar billede pho2ke Nybegynder
04. januar 2005 - 20:22 #9
Det virker også med et tekst felt....

Hvordan er det nu jeg kalder værdien ud så det bliver skrevet....?
Avatar billede pho2ke Nybegynder
04. januar 2005 - 20:23 #10
Det skal bare være i en fil for sig selv!!

Hvor de eneste der sker er at værdien bliver skrevet en gang.
Avatar billede -mundi- Nybegynder
04. januar 2005 - 20:31 #11
Hvis det er det sidste login tidspunkt så skal feltet være et datofelt, for ellers bliver det besværligt at sortere.

<%
    set conn = Server.CreateObject("ADODB.Connection")
    conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db/fpdb/sha.mdb")
    strSQL = "SELECT top 1 lastlogin FROM user order by lastlogin desc"
    set rs = conn.execute(strSQL)
    if not rs.eof then
        response.write rs.fields("lastlogin")
    else
        response.write "Der er ikke registeret noget i databasen"
    end if
conn.close
set conn=nothing
set rs = nothing
%>
Avatar billede pho2ke Nybegynder
04. januar 2005 - 20:41 #12
det virker.... kanont..

Den sidste ting...
Kan det formateres så det er DK dato der vises

Så skal du nok få dine point
Avatar billede -mundi- Nybegynder
04. januar 2005 - 20:46 #13
<%
    session.lcid=1031
    set conn = Server.CreateObject("ADODB.Connection")
    conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db/fpdb/sha.mdb")
    strSQL = "SELECT top 1 lastlogin FROM user order by lastlogin desc"
    set rs = conn.execute(strSQL)
    if not rs.eof then
        response.write formatdatetime(rs.fields("lastlogin"),1)
    else
        response.write "Der er ikke registeret noget i databasen"
    end if
conn.close
set conn=nothing
set rs = nothing
%>

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vsfctformatdatetime.asp
Avatar billede pho2ke Nybegynder
04. januar 2005 - 20:53 #14
Hermed fik du dine point...
Takker for hjælpen...

Mojn
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