Avatar billede zantiago Nybegynder
03. oktober 2004 - 03:09 Der 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
%>
-----------------------------------------------------------------

Håber I kan hjælpe :o)

//Z
Avatar billede eagleeye Praktikant
03. oktober 2004 - 10:56 #1
En checkbox giver ikke true men det som står i value hvis den er sat, så prøv at rette:
If request.form("autologin") = true then

til dette:
If request.form("autologin") <> "" then


Din timeout på cookien er på en anden en "login_filmpol":
Response.Cookies("afstemning_filmpol").Expires = Date+1000

Prøv at rette den til:
Response.Cookies("login_filmpol").Expires = Date+1000



Der hvor du redirecter til login-formen, bruger du filnavnet "brugerlogin.asp"

<% If Request.Cookies("login_filmpol")("user_name") <> "" then response.redirect "brugerlogin.asp?username=" & Request.Cookies("login_filmpol")("user_name") %>

I form-tagen bruger du filnavnet "bruger_login.asp"

Det skal nok være det samme.
Avatar billede zantiago Nybegynder
03. oktober 2004 - 11:31 #2
Ok rettet!

Det ser dog desværre ikke ud til at den opretter cookien, når jeg logger ind og har sat kryds.

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 "bruger_login.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 %>
-------------------------------------------------------------------------------------

Tjek + cookie:
-------------------------------------------------------------------------------------
<%
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") <> "" 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("login_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
%>
-------------------------------------------------------------------------------------
Avatar billede zantiago Nybegynder
03. oktober 2004 - 11:47 #3
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 %>
-------------------------------------------------------------------------------------
Avatar billede eagleeye Praktikant
03. oktober 2004 - 12:05 #4
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.
Avatar billede eagleeye Praktikant
03. oktober 2004 - 12:07 #5
Ok, det måske ikke alle og enhver som kan rette i cookien, men der er altid nogle som kan "hacke" lidt ;)  Det er bare et forslag :)
Avatar billede zantiago Nybegynder
03. oktober 2004 - 12:14 #6
Ok - Nu virker det :o)

Super duper...
Avatar billede eagleeye Praktikant
03. oktober 2004 - 12:36 #7
Ok, her et svar så.. ;)
Avatar billede zantiago Nybegynder
03. oktober 2004 - 18:08 #8
Ok - Hvordan laver med et script der sletter en cookie?
Lidt ligesom session.abandon, bare med cookies :o)

Min cookie ser stadig sådan her ud:
<%=Request.Cookies("login_filmpol")("user_name")%>

Håber at der er lidt "goodwill" tilbage i de 200 points :o)
Avatar billede eagleeye Praktikant
03. oktober 2004 - 18:19 #9
Umiddelbart virker det ikke at sætte cookien til "" men man kan sætte cookien til en "dummy" tekst og ændre udløbs datoen til i går:

Response.Cookies("login_filmpol")("user_name") = "xxx"
Response.Cookies("login_filmpol").Expires = Date() - 1
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