|
| Gem login Fra : Jimmy Snedker |
Dato : 25-03-02 20:34 |
|
Hej!
Jeg er ved at lave en hjemmesiden, hvor dele af den er beskyttet
med et login (brugernavn og password). Dette fungerer fint.
Dog har jeg tre små problemer, som jeg ikke har haft held til at
løse!
1. Login-siden (se login.asp) åbner i et lille popup-vindue . Mit
ønsker er , at når brugeren har udfyldt brugernavn og password
korrekt og trykker på LOGIN så lukker popup-vinduet (altså efter
oplysningerne er valideret) og sender brugeren videre til
loginOK.asp (se koden nedenunder) hvad skal ændres??
2. Derudover har jeg på sammen side en funktion der hedder " gem
indstillinger", dvs. hvis brugeren markerer dette felt skal
"systemet" genkende brugeren, næste gang samme bruger kommer
forbi. Så vedkommende kun skal trykke på login.Hvad gør jeg???
3. De sider hvor kun nogle af brugerne har adgang til, hvordan
undgår jeg de bliver set af andre. Jeg ud fra, at jeg skal bruge
et script der åbner et popup-vindue til filen login.asp. Men
hvordan?
login.asp:
<%
' Hvis der er blevet trykket på knappen "Login"
If Request.Form("Action") = "Login" Then
' Her forberedes de indtastede værdier til validering
strUID = Trim(Replace(Request.Form("Brugernavn"),"'",""))
strPWD = Trim(Replace(Request.Form("Adgangskode"),"'",""))
' Hvis der er skrevet noget i både brugernavn og adgangskode
If Len(strUID) > 0 And Len(strPWD) > 0 Then
' DSNLess forbindelse til databasen
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DRIVER={Microsoft Access Driver
(*.mdb)};DBQ=" & Server.MapPath("mindatabase.mdb")
' Opbygning af SQL streng
strSQL = "SELECT UserID FROM Logins"&_
" WHERE (Username = '" & strUID & "')"&_
" AND (Password = '" & strPWD & "')"
Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then
' Hvis brugeren fandtes i databasen
intUID = rs("UserID")
Else
' Hvis brugeren ikke fandtes i databasen
strERR = "Du blev ikke godkendt af systemet"
End If
' Rydder op i vores connection objekt
myConn.Close
Set myConn = Nothing
If Len(intUID) Then
' Hvis variablen intUID indeholder en værdi sættes
denne i sessionen "UserID" og brugeren bliver sendt videre
Session("UserID") = intUID
Response.Redirect ("loginOK.asp")
End If
Else
' Hvis der ikke var angivet brugernavn og adgangskode
strErr = "Du skal skrive både brugernavn og adgangskode"
End If
If Len(strErr) > 0 Then
' Her laves fejlmeddelsen om til rød skrift
strErr = "<p><font color=red>" & strErr & "</font></p>"
End If
End If
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Supply Forum - Kunde Login</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
<link rel="stylesheet" href="../css/txt_css.css" type="text/css">
</head>
<body>
<form name="Action" method="post" action="default.asp">
<table width="227" border="0" cellspacing="5" cellpadding="0"
align="left">
<tr>
<td colspan="2"><img src="../images/gif/klogin.gif"
width="91" height="12"></td>
<td rowspan="10" valign="bottom" width="20"
class="bpx"><img src="../images/gif/box.gif" ></td>
</tr>
<tr>
<td colspan="2" class="boldtxt">Angiv Brugernavn og
Password</td>
</tr>
<tr>
<td colspan="2" class="brdtxt" height="25"><%=strErr%></td>
</tr>
<tr>
<td class="boldtxt">Brugernavn</td>
<td align="right">
<input type="text" name="Brugernavn" size="18"
class="brdtxt">
</td>
</tr>
<tr>
<td class="boldtxt">Password</td>
<td align="right">
<input type="password" name="Adgangskode" size="18"
class="brdtxt">
</td>
</tr>
<tr>
<td> </td>
<td align="right">
<input type="submit" value="Login" name="Action"
class="boldtxt">
</td>
</tr>
<tr>
<td colspan="2" class="brdtxt">Gem indstillinger
<input type="checkbox" name="checkbox" value="checkbox">
</td>
</tr>
</table>
</form>
</body>
</html>
Med venlig hilsen
Jimmy Snedker
| |
Jørn Andersen (25-03-2002)
| Kommentar Fra : Jørn Andersen |
Dato : 25-03-02 22:05 |
|
On Mon, 25 Mar 2002 19:33:48 +0000 (UTC), Jimmy Snedker
<jsnedker@hotmail.com> wrote:
Hej Jimmy,
>1. Login-siden (se login.asp) åbner i et lille popup-vindue .
Det er ikke et serverside problem. Du får sikkert bedre svar i en
clientside gruppe.
>2. Derudover har jeg på sammen side en funktion der hedder " gem
>indstillinger", dvs. hvis brugeren markerer dette felt skal
>"systemet" genkende brugeren, næste gang samme bruger kommer
>forbi. Så vedkommende kun skal trykke på login.Hvad gør jeg???
Bruger en cookie. Men: Cookies genkender ikke brugere, men maskiner -
så der er altså en sikkerhedsovervejelse, der skal gøres.
Men hvis *alle* dine brugere *altid* logger ind fra samme maskine(r),
og ingen andre logger ind fra disse maskiner osv. ...
>3. De sider hvor kun nogle af brugerne har adgang til, hvordan
>undgår jeg de bliver set af andre. Jeg ud fra, at jeg skal bruge
>et script der åbner et popup-vindue til filen login.asp. Men
>hvordan?
Jeg har fx et sted med flere adgangsniveauer, hvor jeg så har lavet
nogle små filer (med forskelllige security levels), der kan inkluderes
i toppen af siderne:
<%
If Session("securitylevel") > 0 Then
' nothing to do
Else
Response.Redirect "nologin.asp"
End if
%>
Hvis du kun har behov for ét adgangsniveau, gemmer du bare en værdi i
en Session-variabel og checker på den. I stedet for (eller som
supplement til) din:
> Session("UserID") = intUID
kunne du fx skrive:
Session("loginok") = "ja"
og i toppen af hver side skrive:
If Session("loginok") = "ja" Then
(og fortsætte med resten af mit førnævnte eksempel)
Good luck,
Jørn
--
Jørn Andersen,
Brønshøj
| |
|
|