Patrik Corneliusson1 Posted February 23, 2000 Share Posted February 23, 2000 Hej! Jag har ett inloggnings script som inte uppför sig som jag vill. Först har jag en inloggnings sida som ser ut så här: Kod: <% Session("UserId")="" %> <% Session.Timeout = 4 %> <p><% If Session("Logintries") = 3 Then%><font face="verdana" size="2">Tyvärr, du har försökt att logga in felaktigt mer än tre gånger.<br> Du är nu avstängd från systemet.</p> <p>För att prova igen måste du stänga din webbläsare och starta om den för att logga in.</font> <%Else%> </p> <font face="Verdana, Arial" size="2"><B>Välkommen!</B><br>Ange ditt användarnamn och lösenord tack.</font><br> <br> <form method="POST" action="validering.asp"> <center><table border="0" cellPadding="1" cellSpacing="0" width="300" bordercolorlight="#000000" bordercolordark="#FFFFFF"> <tr> <td width="22%"><small><strong><font face="Arial">Användarnamn:</font></strong></small></td> <td width="78%"><input type="text" name="Login" size="20"></td> </tr> <tr> <td width="22%"><small><strong><font face="Arial">Lösenord:</font></strong></small></td> <td width="78%"><input type="password" name="Password" size="20"></td> </tr> <tr> <td width="100%" colspan="2"><input id="submit1" name="B1" src="../images/login.gif" type="image" WIDTH="63" HEIGHT="19" onfocus="blur()"></td> </tr> </table> </center> </form> <%End If%> Sen går den vidare till validate.asp som ser ut så här: Kod: <% Session("Logintries") = Session("Logintries") + 1 if Session("UserId")="" Then Set Connection = Server.CreateObject("ADODB.Connection") Connection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=d:\dmab\login.mdb" SQL2 = "SELECT * FROM Login Where Login = '" & FixaTecken(Request.Form("Login")) & "'" Set ideller = Connection.Execute(SQL2) ' Om login namn inte finns så omdirigiera till login.asp if ideller.BOF AND ideller.EOF then Response.Redirect("login.asp") else passwordchk = StrComp(Request.Form("Password"), ideller("Password"),0) ' är dom lika blir det en 0:a ' är strängarna tex brimba / Brimba blir det en 1:a if passwordchk=1 Then Response.Redirect("login.asp") else Set Connection = Server.CreateObject("ADODB.Connection") Connection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=d:\dmab\internet.mdb" SQL = "SELECT * FROM tabInternetKunder Where anvid = '" & FixaTecken(Request.Form("Login")) & "'" Set login = Connection.Execute(SQL) Session("UserId") = Request.Form("Login") Session("Name") = login("Namn") Session("Adress") = login("Adress") Session("Adress2") = login("Adress2") Session("Postnummer") = login("Postnummer") Session("persnr") = login("persnr") Session("Ort") = login("Ort") Session("Telefonnummer") = login("Tel") Session("Mobil") = login("mobil") Session("Email") = login("Epost") Session("Login") = login("anvid") Session("Password") = login("Password") Session("Logintries") = 0 login.Close Connection.Close End if End if End if %> Felet är altså om jag har loggat in så sätter den ju SESSION("USERID") som ett värde, sen kollar jag det på varje sida som skall vara skyddad med hjälp av: Kod: <% If Session("UserId") = "" Then Response.Redirect("login.asp") End If %> Men problemet är att när man väl har loggat in en gång så kan man sedan gå till någon annan sida och sen till login sidan igen, väl där kan man logga in med sitt användarnamn och skriva nått helt annat lösenord än sitt riktigt, altså stämmer den aldrig av med databasen jag undrar varför? Jag vill att varje gång man går till login sidan för att komma åt sidor som är "personliga" skall man behöva logga in korrekt. Den stämmer av mot databasen första gången man loggar in, men sen struntar den i att kolla eftersom Session("USERID") har fått ett värde. Men jag sätter ju trots allt att session("USERID") skall vara "" så det är lite märkligt. Nånn som kan hjälpa mig? Mvh Patrik aka Brimba Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.