PDA

View Full Version : Login script uppför sig inte som jag vill.


Brimba
2000-02-17, 10:53
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:



<% 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:


<%
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:


<%
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

Artic
2000-02-21, 13:36
Jag vet inte om det är till någon hjälp, men du kan väl ha en logout knapp. Och när man loggar ut så gör du en session.end eller session.abandon eller något liknande....

------------------
/Artic

Brimba
2000-02-21, 13:46
Hej!

Det har jag redan, och då funkar det ju. Men om man nu bara klickar sig vidare på sidan utan att logga ut så blir man ju inte utloggad.

HOPPAS PÅ HJÄLP!!!!

Mvh
Patrik
aka Brimba

Artic
2000-02-22, 07:58
Jo, det har du ju rätt i..... hmmm.... jag vet inte, men det finns ett kommando Response.IsClientConnected

Då borde det gå att använda såhär:


If Not Response.IsClientConnected Then
Response.End
Session.End
End



Jag vet inte om dethär är en så bra lösning, men det är den enda jag kommer på för tillfället.
End

------------------
/Artic