03. oktober 2004 - 03:09Der er
8 kommentarer og 1 løsning
Autologin virker ikke
Hej Eksperter
Jeg har forsøgt mig med et autologin, men jeg kan ikke rigtig få det til at virke :o(
Kan I se hvad jeg gør galt?
Login: ----------------------------------------------------------------- <% if session("user_id") <> "" then %> Min Profil (<%=Request.Cookies("login_filmpol")("user_name")%>) <% Else %> <% If Request.Cookies("login_filmpol")("user_name") <> "" then response.redirect "brugerlogin.asp?username=" & Request.Cookies("login_filmpol")("user_name") %> <form method="POST" action="bruger_login.asp" name="login"> <input name="username" size="20"><br> <input name="password" size="20" type="password"><br> Auto Login <input type="checkbox" name="autologin" value="ON"> <input type="button" value="Login" name="ok"> </form> <% End If %> <script language=vbscript> Sub ok_OnClick() ' Undersøger om det indtastede overholder de krav der er til det If Len(login.username.value) = 0 Then Alert "Du skal indtaste et brugernavn" login.brugernavn.focus ElseIf Len(login.password.value) = 0 Then Alert "Du skal indtaste et password" login.password.focus Else ' Hvis alt er i orden Call login.submit() End If End Sub </script> -----------------------------------------------------------------
Filen der tjekker brugerens login: ----------------------------------------------------------------- <% If request("username") <> "" then Set rs_login = Server.CreateObject("ADODB.RecordSet") rs_login.open "Select * From [brugere] WHERE username = '" & request("username") & "'", Conn
session("user_id") = rs_login("id") response.redirect session("retur") End If
If request.form("autologin") = true then ' Informationer lagres i cookien Response.Cookies("login_filmpol")("user_name") = request.form("username")
' Hvor længe cookien skal vare - i dette tilfælde 1000 dage Response.Cookies("afstemning_filmpol").Expires = Date+1000 End If
Set rs_login = Server.CreateObject("ADODB.RecordSet") rs_login.open "Select * From [brugere] WHERE username = '" & request.form("username") & "'", Conn
If rs_login.bof or rs_login.eof Then response.redirect session("retur")&"fejl=brugernavn"
Else
Set rs_password = Server.CreateObject("ADODB.RecordSet") rs_password.open "Select * From [brugere] WHERE id = " & rs_login("id") & "AND password = '" & request.form("password") & "'" , Conn If rs_password.bof or rs_password.eof Then response.redirect session("retur")&"fejl=password" Else session("user_id") = rs_login("id") response.redirect session("retur")
End If End If %> -----------------------------------------------------------------
har også rettet dette i login filen (dog uden at det hjalp): ------------------------------------------------------------------------------------- <% if session("user_id") <> "" then %> Min Profil (<%=Request.Cookies("login_filmpol")("user_name")%>) <% Else %> <% If Request.Cookies("login_filmpol")("user_name") <> "" then %> <% response.redirect "bruger_login.asp?username=" & Request.Cookies("login_filmpol")("user_name") %> <% else %> <form method="POST" action="bruger_login.asp" name="login"> <input name="username" size="20"><br> <input name="password" size="20" type="password"><br> Auto Login <input type="checkbox" name="autologin" value="ON"> <input type="button" value="Login" name="ok"> </form> <% End If %> <% End If %> -------------------------------------------------------------------------------------
Lige en ting request("username") finde også request.form("username") Så den logger ind før du får sat cookien..
Prøv at rette request("username") til request.Querystring("username") så den kun tager username hvis det er overfør via adressen.
Det er denne linje: If request("username") <> "" then
JEg vil anbefale at du enten gemmer password eller laver et cookie password til hver bruger så man ikke bare kan ændre nanvet i cookien til et andet nanv og på den måde logge ind som en anden.
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.