Avatar billede ccfischer Nybegynder
19. august 2004 - 21:28 Der er 15 kommentarer og
1 løsning

login - script

Hejsa !

Jeg søger et login script hvor der er flere brugere tilknyttet. Dvs. at logger person 1 ind så kommer vedkomende til siden person1.asp, og logger person 2 ind, så kommer han til peron2.asp. Der skal samtidigt være muligt for dem at rette deres passwords. Det skal siges at jeg er meget ny i ASP.
Avatar billede eagleeye Praktikant
19. august 2004 - 21:37 #1
Er der en speciel grund til du ønsker alle har hver deres side?
Avatar billede ccfischer Nybegynder
19. august 2004 - 21:40 #2
ja det er der. Vi er 3 personer som udfylder en form som sendes forskellige stder hen. Du kan se det her. http://www.web2go.dk - det drejer sig om "Nyt fra TR - SR & FTR
Avatar billede eagleeye Praktikant
19. august 2004 - 21:56 #3
Ok, her login fil som redirecter til <brugernavn>.asp
Der er en database med som skal indehold en tabel som hedder users og den skal havde to kolonner username og userpassword:


<html>
<head>
<title></title>
</head>
<body>
<%
function fixSring(strInput)
  if len(strInput) > 0 then
    outString = replace(strInput,"'","")
    fixSring = outString
  else
    fixSring = strInput
  end if
end function

if Request.ServerVariables("REQUEST_METHOD") = "POST" then
  Set Conn = Server.CreateObject("ADODB.Connection")
  Set rs = Server.CreateObject("ADODB.RecordSet")

  username = fixSring(Request.Form("username"))
  password = fixSring(Request.Form("password"))

  strConn = "Provider=Microsoft.Jet.OLEDB.4.0;"
  strConn = strConn & "Data Source=" & Server.MapPath("db5.mdb")
  Conn.Open strConn
 
  strSQL= "SELECT * FROM users WHERE (username = '" & username & "' AND userpassword='" & password & "');"
  Set rs = Conn.Execute (strSQL)

  if not rs.EOF then
    if (username = rs("username")) then
      session("loginOK") = "jeps"
      session("username") = rs("username")
 
      rs.Close
      Conn.Close
      Response.Redirect("" & session("username") & ".asp")
    end if
  end if

  if session("loginOK") = "jeps" then
    session("loginOK") = "g"
    session("username") = ""
  end if
  rs.Close
  Conn.Close
  Set rs = Nothing
  Set Conn = Nothing
end if
%>
<center>
<p>Velkommen til:</p>

<table border="1">
<form method="post" action="login.asp" name="adminlogin">
  <tr><td>Brugernavn:</td><td><input name="username"></td></tr>
  <tr><td>Password:</td><td><input type="password" name="password"></td></tr>
  <tr><td colspan="2" align="center"><input type="submit" value="Login" name="Action"></td></tr>
</form>
</table>

</center>
</body>
</html>
Avatar billede ccfischer Nybegynder
19. august 2004 - 21:59 #4
Det lyder bare fint. Hvordan beskytter jeg så min sider så ikke alle bare kan gå ind på siderne, uden at logge ind.
Avatar billede eagleeye Praktikant
19. august 2004 - 22:03 #5
Det gøres med en session variable, her gemmer den en som hedder loginOK, hvis man har indstatet korrekt  brugernavn og password

session("loginOK") = "jeps"



På de sider du vil beskytte kan du skrive sådan her:
<%
if session("loginOK") <> "jeps" then
  'Brugeren ikke logget ind redirect til forsiden
  response.redirect("/default.asp")
else
%>

..
'Her vise den beskyttede side
..

<%
end if
%>
Avatar billede ccfischer Nybegynder
19. august 2004 - 22:06 #6
ok, lige en ting til, hvordan så med at brugeren selv kan rette sit passwords. Grunden hertil er den at jeg laver et foreløbig passwords, de kan så herefter rette det selv til noget de kan huske
Avatar billede eagleeye Praktikant
19. august 2004 - 22:12 #7
Denne fil kan du bruge når den bruger skal havde rettet et password:



<% if session("loginOK") <> "jeps" then
  Response.Redirect("/default.asp")
 
else
%>
<html>
<head>
<title></title>
</head>
<body>
<%
function fixSring(strInput)
  if len(strInput) > 0 then
    outString = replace(strInput,"'","")
    fixSring = outString
  else
    fixSring = strInput
  end if
end function


if Request.ServerVariables("REQUEST_METHOD") = "POST" then
  Set Conn = Server.CreateObject("ADODB.Connection")
  oldpassword = fixSring(Request.Form("oldpassword"))
  newpassword = fixSring(Request.Form("newpassword"))

  strConn = "Provider=Microsoft.Jet.OLEDB.4.0;"
  strConn = strConn & "Data Source=" & Server.MapPath("db5.mdb")
  Conn.Open strConn
 
  strSQL= "UPDATE users SET userpassword = '" & newpassword & "' WHERE (username = '" & session("username") & "' AND userpassword='" & oldpassword & "');"
  Conn.Execute (strSQL)
  set rs=Conn.Execute ("select * from users WHERE (username = '" & session("username") & "' AND userpassword='" & newpassword & "');")
  if not rs.EOF then

    Response.Write "Dit password er nu ændret"
  else
    Response.Write "Dit password er IKKE ændret noget gik galt!"
  end if
  Set rs = Nothing
  Set Conn = Nothing
else

%>
<center>
<p>Ret password:</p>

<table border="1">
<form method="post" action="<%=Request.ServerVariables("SCRIPT_NAME")%>" name="adminlogin">
  <tr><td>Brugernavn:</td><td><%=session("username")%></td></tr>
  <tr><td>Gammel Password:</td><td><input type="password" name="oldpassword"></td></tr>
  <tr><td>Nyt Password:</td><td><input type="password" name="newpassword"></td></tr>
  <tr><td colspan="2" align="center"><input type="submit" value="Ret password" name="Action"></td></tr>
</form>
</table>

</center>
<% end if %>
</body>
</html>
<% end if %>
Avatar billede ccfischer Nybegynder
19. august 2004 - 22:18 #8
det er bare fint. Takker Kan du ikke lige kikke her http://www.web2go.dk/test2/login.asp - nu skriver den navnet kenneth.asp men der er ingen side, hvordan kan det være (spørger lidt dumt måske)
Avatar billede ccfischer Nybegynder
19. august 2004 - 22:22 #9
jaja bruger: kenneth - pass: simon12
Avatar billede eagleeye Praktikant
19. august 2004 - 22:23 #10
Fordi du ikke har en side/fil som hedder kenneth.asp  :)

Det kan være der skal tilføjes en kolonne med nanvet på den fil som den skal redirecte efter login. Lige nu er det [username].asp
Avatar billede ccfischer Nybegynder
19. august 2004 - 22:27 #11
Det vil sige at jeg lave en side der hedder henrik.asp - og når han så logger inde med brugerpass: henrik så hopper han ind på den side
Avatar billede eagleeye Praktikant
19. august 2004 - 22:29 #12
Ja.
Avatar billede ccfischer Nybegynder
19. august 2004 - 22:30 #13
Jeg siger tusind tak for hjælpen. Giver du et svar så får du dine point..
Avatar billede eagleeye Praktikant
19. august 2004 - 22:32 #14
Ok her et svar :)
Avatar billede ccfischer Nybegynder
19. august 2004 - 22:34 #15
Jeg takker igen, for din hjælp
Avatar billede ccfischer Nybegynder
19. august 2004 - 22:34 #16
ups en fejl
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