Avatar billede ravnkilde Nybegynder
16. december 2003 - 13:35 Der er 17 kommentarer og
1 løsning

husk mig funktion ved login

Hej!

Jeg har et eksisternde login-system, hvor jeg gerne vil have en "husk mig-funktion" tilføjet. Den skal ikke fungere som en "alm." cookie, men derimod check db'en for om brugeren har valgt denne funktion. Jeg har nogle problemer med at få dette implementeret i min eksisterende kode (ses nedenfor). Min database har et ja/nej felt i tabellen tblUser, der kaldes "Remember".

Assistance udbedes!

-- Start på kode --
<!--#include file="tools.asp"-->
<% Session("../database/Admin")=""
If Request("Submit")<>"" Then
    OpenDB con, "../database/Admin"
    SQL = "SELECT * FROM tblUser WHERE fldUserName='" & Request("UserName") & "' AND fldPassword='" & Request("Password") & "'"
    Set rs = con.Execute(SQL)
    If Not rs.EOF Then
        Session("../database/Admin")  = rs("fldUserName")
        LogUser Session("../database/Admin"), "in"
        response.redirect "admin_frame.asp"
    End If
End If
%>

<html>

    <head>
        <title>Login</title>
    </head>

    <body onload="document.LoginForm.UserName.focus()">
        <form action="default.asp" method="post" name="LoginForm">
            <center>
                <table border="1" cellspacing="2" cellpadding="3">
                    <tr>
                        <td colspan="2" align="center"><b>Login</b></td>
                    </tr>
                    <tr>
                        <td>User name:</td>
                        <td><input type="text" name="UserName"></td>
                    </tr>
                    <tr>
                        <td>Password:</td>
                        <td><input type="password" name="Password"></td>
                    </tr>
                    <tr>
                        <td colspan="2"><input type="checkbox" name="Remember" value="ON" border="0"> Remember me!</td>
                    </tr>
                    <tr>
                        <td></td>
                        <td><input type="submit" name="Submit" value="Login"></td>
                    </tr>
                </table>
            </center>
        </form>
        <p></p>
    </body>

</html>

-- slut på kode --
Avatar billede eagleeye Praktikant
16. december 2003 - 13:41 #1
Det kan ikke lade sig gøre, hvis du ikke bruger en cookie til at gemme om ikke andet så brugerID eller brugernavn. Hvordan skal login siden eller gætte hvilken bruger det er som forsøger at logger ind også vælge de rigtige data.
Avatar billede ravnkilde Nybegynder
16. december 2003 - 13:49 #2
eagleeye: Ikke en uvæsentlig pointe! Kan du hjælpe?
Avatar billede eagleeye Praktikant
16. december 2003 - 14:14 #3
Et eks med en cookie som gemmer brugernavn og password i cookien:

if Request.Form("Remember") <> "" then
  'Gem cookien
  Response.Cookies("login")("brugernavn") = Request.Form("UserName")
  Response.Cookies("login")("password") = Request.Form("Password")
  Response.Cookies("login")("remember") = "ja"
  Response.Cookies("login").Expires = Date+365
else
  'Slet evt cookie
  if Request.Cookies("login")("brugernavn") <> "" then
    Response.Cookies("login")("brugernavn") = " XX "
    Response.Cookies("login")("password") = "XX"
    Response.Cookies("login")("remember") = "nej"
    Response.Cookies("login").Expires = Date-365
  end if
end if


---------
Koden på login siden som hendter data fra cookien:

<%
if lcase(Request.Cookies("login")("remember")) = "ja" then
  username = Request.Cookies("login")("brugernavn")
  password = Request.Cookies("login")("brugernavn")
else
  usernavn = ""
  password = "Password"
end if
%>


Så kan du rette:
<td><input type="text" name="UserName"></td>

Til dette så blvier felt automatisk udfyldt:
<td><input type="text" name="UserName" value="<%=usernavn%>"></td>
Avatar billede eagleeye Praktikant
16. december 2003 - 14:16 #4
Skal den lave automatisk login eller skal den bare selv udfylde felterne, som det kode er udfylder den selv felterne med brugernavn og password.
Avatar billede ravnkilde Nybegynder
16. december 2003 - 14:36 #5
eagleeye: bare selv udfylde felterne. Du skriver "usernavn"???
Avatar billede eagleeye Praktikant
16. december 2003 - 14:53 #6
hov det også blivet blandet lidt... :)


Koden på login siden som hendter data fra cookien:

<%
if lcase(Request.Cookies("login")("remember")) = "ja" then
  username = Request.Cookies("login")("brugernavn")
  password = Request.Cookies("login")("password")
else
  username = ""
  password = "Password"
end if
%>


Og så denne skal være:
<td><input type="text" name="UserName" value="<%=username%>"></td>
Avatar billede ravnkilde Nybegynder
16. december 2003 - 14:57 #7
Hej eagleeye!

Med denne kode-sammensætning kan jeg ikke få det til at virke!

<!--#include file="tools.asp"-->
<%

if Request.Form("Remember") <> "" then
  'Gem cookien
  Response.Cookies("login")("brugernavn") = Request.Form("UserName")
  Response.Cookies("login")("password") = Request.Form("Password")
  Response.Cookies("login")("remember") = "ja"
  Response.Cookies("login").Expires = Date+365
else
  'Slet evt cookie
  if Request.Cookies("login")("brugernavn") <> "" then
    Response.Cookies("login")("brugernavn") = " XX "
    Response.Cookies("login")("password") = "XX"
    Response.Cookies("login")("remember") = "nej"
    Response.Cookies("login").Expires = Date-365
  end if
end if
%>

<%
if lcase(Request.Cookies("login")("remember")) = "ja" then
  username = Request.Cookies("login")("brugernavn")
  password = Request.Cookies("login")("password")
else
  username = ""
  password = "Password"
end if
%>


<% Session("../database/Admin")=""
If Request("Submit")<>"" Then
    OpenDB con, "../database/Admin"
    SQL = "SELECT * FROM tblUser WHERE fldUserName='" & Request("UserName") & "' AND fldPassword='" & Request("Password") & "'"
    Set rs = con.Execute(SQL)
    If Not rs.EOF Then
        Session("../database/Admin")  = rs("fldUserName")
        LogUser Session("../database/Admin"), "in"
        response.redirect "admin_frame.asp"
    End If
End If
%>

<html>

    <head>
        <title>Login</title>
    </head>

    <body onload="document.LoginForm.UserName.focus()">
        <form action="default3.asp" method="post" name="LoginForm">
            <center>
                <table border="1" cellspacing="2" cellpadding="3">
                    <tr>
                        <td colspan="2" align="center"><b>Login</b></td>
                    </tr>
                    <tr>
                        <td>User name:</td>
                        <td><input type="text" name="UserName" value="<%=username%>"></td>
                        </tr>
                    <tr>
                        <td>Password:</td>
                        <td><input type="password" name="Password">
                        </td>
                    </tr>
                    <tr>
                        <td colspan="2"><input type="checkbox" name="Remember" value="ON" border="0"> Remember me!</td>
                    </tr>
                    <tr>
                        <td></td>
                        <td><input type="submit" name="Submit" value="Login"></td>
                    </tr>
                </table>
            </center>
        </form>
        <p></p>
    </body>

</html>
Avatar billede eagleeye Praktikant
16. december 2003 - 15:16 #8
Prøv at rette:
<%

if Request.Form("Remember") <> "" then
  'Gem cookien
  Response.Cookies("login")("brugernavn") = Request.Form("UserName")
  Response.Cookies("login")("password") = Request.Form("Password")
  Response.Cookies("login")("remember") = "ja"
  Response.Cookies("login").Expires = Date+365
else
  'Slet evt cookie
  if Request.Cookies("login")("brugernavn") <> "" then
    Response.Cookies("login")("brugernavn") = " XX "
    Response.Cookies("login")("password") = "XX"
    Response.Cookies("login")("remember") = "nej"
    Response.Cookies("login").Expires = Date-365
  end if
end if
%>


Til:

<%

if Request.Servervariables("REQUEST_METHOD") = "POST" then
if Request.Form("Remember") <> "" then
  'Gem cookien
  Response.Cookies("login")("brugernavn") = Request.Form("UserName")
  Response.Cookies("login")("password") = Request.Form("Password")
  Response.Cookies("login")("remember") = "ja"
  Response.Cookies("login").Expires = Date+365
else
  'Slet evt cookie
  if Request.Cookies("login")("brugernavn") <> "" then
    Response.Cookies("login")("brugernavn") = " XX "
    Response.Cookies("login")("password") = "XX"
    Response.Cookies("login")("remember") = "nej"
    Response.Cookies("login").Expires = Date-365
  end if
end if
end if
%>
Avatar billede eagleeye Praktikant
16. december 2003 - 15:17 #9
Samt denne med password:
<td><input type="password" name="Password">

skal også havde en value på:
<td><input type="password" name="Password" value="<%=password%>">
Avatar billede ravnkilde Nybegynder
16. december 2003 - 15:58 #10
eagleeye: det var bedre!
Hvordan fungerer det med slet cookie?
Avatar billede eagleeye Praktikant
16. december 2003 - 16:02 #11
Det hvis man fjerner krydset i remember me checkbox'en så skulle den gerne slette cookien, der kan måske være lidt bøvl med slet da man vist skal angive en værdi i cookien man kan ikke bare sætte væriden til tom ""
Avatar billede ravnkilde Nybegynder
16. december 2003 - 16:02 #12
nyt spørgsmål:

Kan jeg sætte dette ind på den side, brugeren kommer til efter at have logget ind, og vil det virke?:

If Request.Form("knap2") = "Slå husk mig fra" Then
    Response.Cookies("brugernavn").Expires = date() - 1
    Response.Cookies("password").Expires = date() -1
End If

---
<p><input type=""submit"" name=""knap2"" value=""Slå husk mig fra""></p>
---
Avatar billede eagleeye Praktikant
16. december 2003 - 16:04 #13
Ja det kkan du godt, det skal bare være ("login") cookien:
If Request.Form("knap2") = "Slå husk mig fra" Then
    Response.Cookies("login").Expires = date() - 1
End If



På login formen skulle du måske lige udvide denne:

<td colspan="2"><input type="checkbox" name="Remember" value="ON" border="0"> Remember me!</td>

Til:

<td colspan="2"><input type="checkbox" name="Remember" value="ON" border="0"
<% if if lcase(Request.Cookies("login")("remember")) = "ja" then Response.write " checked " %>
> Remember me!</td>
Avatar billede ravnkilde Nybegynder
16. december 2003 - 16:07 #14
eagleeye: jeg har prøvet med at fjerne krydset i remember og det ser umiddelbart ud til at virke - næste gang du kommer til siden vel og mærke. Man skal altså logge ind med krydset disabled for at den sletter cookien.
Avatar billede eagleeye Praktikant
16. december 2003 - 16:31 #15
Ja det rigtigt, man skal logge ind først ;) eller i det mindste trykke på Submit knappen for den gemmer det.
Avatar billede eagleeye Praktikant
18. december 2003 - 23:01 #16
virkede det?
Avatar billede ravnkilde Nybegynder
19. december 2003 - 09:26 #17
Yes, tak for hjælpen. Jeg havde faktisk allerede indsat markering i krydsfreltet, men tak alligevel.

Glædelig jul & godt nytår!
Avatar billede emetico Nybegynder
19. december 2003 - 16:35 #18
Okay så læste jeg det lige igennem for jeg skal selv til at sætte en cookie på.
men min ser altså sådan her ud:

<form name="login" action="login.asp" method="post">
                  <td width="70%" bgcolor="#808080">Brugernavn<br><input type="text" name="username" size="20"><br>Password<br><input type="text" name="password" size="20">
                  <input type="submit" value="Send" name="Submit">Gem Login?<input type="checkbox" name="gem" value="ON"></form>

så langt så godt. så går jeg ud fra at jeg skal bruge det her:

<%

if Request.Servervariables("REQUEST_METHOD") = "POST" then
if Request.Form("gem") <> "" then
  'Gem cookien
  Response.Cookies("login")("brugernavn") = Request.Form("username")
  Response.Cookies("login")("password") = Request.Form("password")
  Response.Cookies("login")("gem") = "ja"
  Response.Cookies("login").Expires = Date+365
else
  'Slet evt cookie
  if Request.Cookies("login")("brugernavn") <> "" then
    Response.Cookies("login")("brugernavn") = " XX "
    Response.Cookies("login")("password") = "XX"
    Response.Cookies("login")("gem") = "nej"
    Response.Cookies("login").Expires = Date-365
  end if
end if
end if
%>

men hvor skal jeg sætte det ind henne ?

også til sidst men ikke mindst så skal jeg sætte det her ind på mit login script: men er det lige emeget hvor jeg smider det ind henne ?

<%
if lcase(Request.Cookies("login")("gem")) = "ja" then
  username = Request.Cookies("login")("brugernavn")
  password = Request.Cookies("login")("brugernavn")
else
  usernavn = ""
  password = "Password"
end if
%>

SÅ HELP!!!!!!!! ;-)
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

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Solution Manager til Cyberdivisionen

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Vil du være med til at opbygge og udvikle Forsvarets dronekapacitet?

Capgemini Danmark A/S

Client Partner