webForumDet fria alternativet

Login script uppför sig inte som jag vill.

ASP

3 svar · 384 visningar · startad av Brimba

Medlem sedan dec. 19995 874 inlägg
Frågan#1

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

Medlem sedan dec. 199932 inlägg
#2

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

Medlem sedan dec. 19995 874 inlägg
#3

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

Medlem sedan dec. 199932 inlägg
#4

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

252 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)