Avatar billede plato Juniormester
12. september 2006 - 11:35 Der er 13 kommentarer og
1 løsning

Konverter "Husk mig" til "Auto login"

Hejsa Ng.

Er der nogle her der kan hjælpe med mig at lave min "Husk mig" funktion om til "Auto Login". Har ikke selv lavet hele koden, så derfor ved jeg ikke lige hvordan jeg skal gøre det.

Her kommer login ind koden:
If Request.ServerVariables("REQUEST_METHOD") = "POST" THEN
  fhuskmig = Request.Form("huskmig")
  if fhuskmig <> "" then
    Response.Cookies("login")("huskmig") = "yes"
  else
    Response.Cookies("login")("huskmig") = "no"
  end if
  Response.Cookies("login").Expires = date() + 365
' Logon
  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open Application("Provider")

  Sql = "SELECT user, id, lastlogon, email, navn, adresse, bypost, tlf, citat, avatar, tekst FROM users WHERE user = '"& CleanText(Request.Form("username")) &"' AND password = '"& CleanText(Request.Form("password")) &"'"
  Set Rs = Server.CreateObject("ADODB.RecordSet")
  Rs.Open Sql, Conn, 1,1

  If Rs.RecordCount = 1 THEN
    if fhuskmig <> "" then
      Response.Cookies("login")("brugernavn") = Request.Form("username")
      Response.Cookies("login")("password") = Request.Form("password")
      Response.Cookies("login").Expires = date() + 365
    end if

    Session("login") = True
    Session("user") = Rs("User")
    Session("id") = Rs("id")
    Session("lastlogon") = Rs("lastlogon")
    session("email") = Rs("email")
    Session("navn") = Rs("navn")
    Session("adresse") = Rs("adresse")
    Session("bypost") = Rs("bypost")
    Session("tlf") = Rs("tlf")
    Session("citat") = Rs("citat")
    Session("avatar") = Rs("avatar")
    Session("tekst") = Rs("tekst")
    Sql = "UPDATE users SET lastlogon = #"& Date() &"# WHERE id = " & Rs("id")
    Conn.Execute(Sql)
    Rs.Close
    Response.redirect(Request.ServerVariables("HTTP_REFERER"))
  End If



Her kommer formen på min forside:
        If Session("login") = False THEN
        huskmig = Request.Cookies("login")("huskmig")
        if huskmig = "yes" then
          Username = Request.Cookies("login")("brugernavn")
          Password = Request.Cookies("login")("password")
        end if
        %>
        <form method="post" action="/opret.asp">Bruger <input class="form_login" size="17" name="username" value="<%=Username%>">&nbsp;&nbsp;&nbsp;Password <input class="form_login" size="17" type="password" name="password" value="<%=Password%>">&nbsp;&nbsp;&nbsp;<input  type="submit" value="Login" name="Action" class="formsknap_login">&nbsp;&nbsp;&nbsp;<input class="checkbox" type="checkbox" name="huskmig"> Husk mig&nbsp;&nbsp;&nbsp;<a class='login_link' href="/opret.asp" title="Opret ny bruger">Opret bruger?</a>&nbsp;&nbsp;&nbsp;<a class='login_link' href="/passrecover.asp" title="F&aring; tilsendt dit password">Glemt password</a></form>
        <%
Avatar billede madeindk Nybegynder
12. september 2006 - 11:42 #1
<%
If Request.ServerVariables("REQUEST_METHOD") = "POST" THEN
  fhuskmig = Request.Form("huskmig")
  if fhuskmig <> "" then
    Response.Cookies("autoLogin")("status") = "yes"
  else
    Response.Cookies("autoLogin")("status") = "no"
  end if
  Response.Cookies("autoLogin").Expires = date() + 365
' Logon
  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open Application("Provider")

  Sql = "SELECT user, id, lastlogon, email, navn, adresse, bypost, tlf, citat, avatar, tekst FROM users WHERE user = '"& CleanText(Request.Form("username")) &"' AND password = '"& CleanText(Request.Form("password")) &"'"
  Set Rs = Server.CreateObject("ADODB.RecordSet")
  Rs.Open Sql, Conn, 1,1

  If Rs.RecordCount = 1 THEN
    if fhuskmig <> "" then
      Response.Cookies("autoLogin")("brugernavn") = Request.Form("username")
      Response.Cookies("autoLogin")("password") = Request.Form("password")
      Response.Cookies("autoLogin").Expires = date() + 365
    end if

    Session("login") = True
    Session("user") = Rs("User")
    Session("id") = Rs("id")
    Session("lastlogon") = Rs("lastlogon")
    session("email") = Rs("email")
    Session("navn") = Rs("navn")
    Session("adresse") = Rs("adresse")
    Session("bypost") = Rs("bypost")
    Session("tlf") = Rs("tlf")
    Session("citat") = Rs("citat")
    Session("avatar") = Rs("avatar")
    Session("tekst") = Rs("tekst")
    Sql = "UPDATE users SET lastlogon = #"& Date() &"# WHERE id = " & Rs("id")
    Conn.Execute(Sql)
    Rs.Close
    Response.redirect(Request.ServerVariables("HTTP_REFERER"))
  End If



Her kommer formen på min forside:
        If Session("login") = False THEN
        huskmig = Request.Cookies("login")("huskmig")
        if huskmig = "yes" then
          Username = Request.Cookies("autoLogin")("brugernavn")
          Password = Request.Cookies("autoLogin")("password")
        end if
        %>
        <form method="post" action="/opret.asp">Bruger <input class="form_login" size="17" name="username" value="<%=Username%>">&nbsp;&nbsp;&nbsp;Password <input class="form_login" size="17" type="password" name="password" value="<%=Password%>">&nbsp;&nbsp;&nbsp;<input  type="submit" value="Login" name="Action" class="formsknap_login">&nbsp;&nbsp;&nbsp;<input class="checkbox" type="checkbox" name="huskmig"> Husk mig&nbsp;&nbsp;&nbsp;<a class='login_link' href="/opret.asp" title="Opret ny bruger">Opret bruger?</a>&nbsp;&nbsp;&nbsp;<a class='login_link' href="/passrecover.asp" title="F&aring; tilsendt dit password">Glemt password</a></form>

Er det sådan her du mener? :-)
Avatar billede madeindk Nybegynder
12. september 2006 - 11:42 #2
Hov, manglede lige...

huskmig = Request.Cookies("login")("huskmig")

Ret til:

huskmig = Request.Cookies("autoLogin")("huskmig")
Avatar billede plato Juniormester
12. september 2006 - 11:48 #3
Det virker desværre ikke. Hvis sætter et flueben i boksen inden jeg logger ind. Logger ind og lukker siden, åbner påny hjemmesiden, er man logget ud.
Avatar billede plato Juniormester
12. september 2006 - 12:01 #4
Den laver godtnok en cookie:

autoLogin
password=******&brugernavn=Webmaster&status=yeswww.filmnet.dk/102442072064029881535141159984029808210*
Avatar billede madeindk Nybegynder
12. september 2006 - 13:48 #5
Argh ok - har misforstået spørgsmålet ;-)

Lav en ny fil med følgende indhold og inkluder den i toppen af din side. Som noget af det første på siden.

<%
strCookie = Request.Cookies("login")("huskmig")

if strCookie = "yes" then

strUsername = Request.Cookies("autoLogin")("brugernavn")
strPassword = Request.Cookies("autoLogin")("password")

SQL = "SELECT user, id, lastlogon, email, navn, adresse, bypost, tlf, citat, avatar, tekst FROM users WHERE user = '"& strPassword &"' AND password = '"& strUsername &"'"

Set Rs = Server.CreateObject("ADODB.RecordSet")
Rs.Open SQL, Conn, 1,1

  If Rs.RecordCount = 1 THEN

    Session("login") = True
    Session("user") = Rs("User")
    Session("id") = Rs("id")
    Session("lastlogon") = Rs("lastlogon")
    session("email") = Rs("email")
    Session("navn") = Rs("navn")
    Session("adresse") = Rs("adresse")
    Session("bypost") = Rs("bypost")
    Session("tlf") = Rs("tlf")
    Session("citat") = Rs("citat")
    Session("avatar") = Rs("avatar")
    Session("tekst") = Rs("tekst")
    Sql = "UPDATE users SET lastlogon = #"& Date() &"# WHERE id = " & Rs("id")
    Conn.Execute(Sql)
    Rs.Close
    Response.redirect(Request.ServerVariables("HTTP_REFERER"))

  End If
End if
%>
Avatar billede plato Juniormester
12. september 2006 - 18:48 #6
Skal jeg så lade være med at benytte min opret.asp, som indeholder den første kode?
Avatar billede madeindk Nybegynder
12. september 2006 - 19:27 #7
Nej, den første kode er det bare almindeligt log ind (hvis brugeren selv vil indtaste og hvis den skal gemme cookies) og den anden kode er KUN til cookies. Der skal jo heller ikke noget <input> af nogen art - altså text felter er noget i den stil på cookies siden - INTET :-)
Avatar billede plato Juniormester
12. september 2006 - 21:11 #8
Desværre.. Sætter et flueben i tjekboksen og logger ind. Lukker siden ned og åbner siden påny, men så er man bare logget ud.
Avatar billede madeindk Nybegynder
12. september 2006 - 21:20 #9
Må jeg prøve at se den side du har lavet?
Avatar billede plato Juniormester
12. september 2006 - 21:28 #10
Avatar billede madeindk Nybegynder
12. september 2006 - 22:35 #11
Prøv at sæt følgende ind i din includefil i toppen - hvis du bliver sendt videre til Google.dk så sker der en fejl i log ind scriptet.

<%
' Tjek af cookies
strUsername = Request.Cookies("autoLogin")("brugernavn")
strPassword = Request.Cookies("autoLogin")("password")
strStatus = Request.Cookies("autoLogin")("status")

if strUsername <> "" AND strPassword <> "" AND strStatus = "yes" then

SQL = "SELECT user, id, lastlogon, email, navn, adresse, bypost, tlf, citat, avatar, tekst FROM users WHERE user = '"& strPassword &"' AND password = '"& strUsername &"'"

Set Rs = Server.CreateObject("ADODB.RecordSet")
Rs.Open SQL, Conn, 1,1

  If Rs.RecordCount = 1 THEN

    Session("login") = True
    Session("user") = Rs("User")
    Session("id") = Rs("id")
    Session("lastlogon") = Rs("lastlogon")
    session("email") = Rs("email")
    Session("navn") = Rs("navn")
    Session("adresse") = Rs("adresse")
    Session("bypost") = Rs("bypost")
    Session("tlf") = Rs("tlf")
    Session("citat") = Rs("citat")
    Session("avatar") = Rs("avatar")
    Session("tekst") = Rs("tekst")
    Sql = "UPDATE users SET lastlogon = #"& Date() &"# WHERE id = " & Rs("id")
    Conn.Execute(Sql)
    Rs.Close
    Response.redirect(Request.ServerVariables("HTTP_REFERER"))

  Else

  Response.Redirect("http://google.dk")

  End If

End if
%>
Avatar billede plato Juniormester
16. september 2006 - 20:06 #12
Så får jeg fejl i linie 13 som er:

Set Rs = Server.CreateObject("ADODB.RecordSet")
Rs.Open SQL, Conn, 1,1
Avatar billede plato Juniormester
16. september 2006 - 20:08 #13
ADODB.Recordset error '800a0bb9'

Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

/test3/include/autologin.asp, line 13
Avatar billede plato Juniormester
16. september 2006 - 20:14 #14
Har løst fejlen med disse linier:
  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open Application("Provider")

Jeg bliver sendt videre til Google
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