15. juni 2002 - 14:01Der er
18 kommentarer og 1 løsning
Login
Hej,
jeg har lavet en side i ASP, som jeg vil have man skal have adgangskode for at kunne logge sig ind på! Hvordan gør man det? Jeg vil gerne have det skåret ud i pap :o)
Du kan lave en login FORM i stil med: <table border="1"> <form method="post" action="login_chk.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>
Så lave du en fil som tjekker det indtastede brugeranvn og password:
strSQL= "SELECT * FROM members WHERE (username = '" & username & "' AND userpassword='" & password & "');" Set rs = Conn.Execute (strSQL)
if not rs.EOF then session("loginOK") = "jada" session("loginMemberID") = rs("memberID") 'Gemmer også memberID... Conn.Close Response.Redirect("../forum.asp") 'Send til førete side else 'Fejl i brugernavn eller password Response.Redirect("login.asp") end if
På de sider du vil beskytte:
if Session("loginOK") <> "jada" then 'Ikker loget ind send til login.asp siden Response.Redirect("login.asp") else 'Her skal sidne være: end if
<html> <title>tid og dato</title> <head> </head> <body> <% ' Tjek om login og password er korrekte If Request.Form("login") = "bruger" AND Request.Form("password") = "bruger" Then
' Hvis korrekt sættes session til JA Session("login") = "BRUGERJA" Session.Timeout = 30 Response.Redirect "bruger.asp"
Else
' Hvis forkert sættes ingen session til NEJ Session("login") = "NEJ" Session.Timeout = 30 Response.Redirect "index.asp"
If Request.Form("login") = "admin" AND Request.Form("password") = "admin" Then
' Hvis korrekt sættes session til JA Session("login") = "ADMINJA" Session.Timeout = 30 Response.Redirect "administrator.asp"
Else
' Hvis forkert sættes ingen session til NEJ Session("login") = "NEJ" Session.Timeout = 30 Response.Redirect "index.asp"
End If %> </body> </html>
Grunden til at jeg både har en admin og en bruger er som det kan at når man logger ind som administrator skal man komme ind på en anden side end når brugeren logger ind
egentlig ville jeg hellere bruge den du har lavet der bruger databasen, men hvordan laver jeg to adgangsniveauer? Når man logger ind som admin skal man komme ind på administration.asp, og når man logger ind som bruger skal man komme ind på bruger.asp?
hvis du opgå lave en kolonne som hedder userType som tal så kan du have 0=bruger 1=admin
if not rs.EOF then session("loginOK") = "jada" session("loginMemberID") = rs("memberID") 'Gemmer også memberID... session("loginUserType") = rs("userType") 'hent og gem userType Conn.Close
if CInt(session("loginUserType")) = 0 then 'bruger Response.Redirect("bruger.asp") 'Send til førete side elseif CInt(session("loginUserType")) = 1 then 'Admin Response.Redirect("adminpage.asp") 'Send til førete side else 'hvis userType er forskelligfra 0 og 1 Response.Redirect("bruger.asp") 'Send til førete side end if else 'Fejl i brugernavn eller password Response.Redirect("login.asp") end if
ok - men når man endelig er logget på og har fået sin "session", så vil en bruger kunne, hvis han kan adresse administration.asp, kunne gå ind på den side uden at være logget ind som administartor?
Skal man så ikke have to forskellige slags af de her:
if Session("loginOK") <> "jada" then 'Ikker loget ind send til login.asp siden Response.Redirect("login.asp") else 'Her skal sidne være: end if
en der fiver adgang til bruger.asp, og en der både giver adgang til bruger.asp og administrator.asp
du er for sej - har fået det hele til at virke nu :o)
kommer nok snart igen med mere eller mindre udfordrende spørgsmål :o)
Synes godt om
Ny brugerNybegynder
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.