April 19, 2001
Jag har gjort en login i asp med hjälp av en databas...
NU till problemet...
Jag har gjort en loop för att hitta användarnamnet!
Sen en loop för att hitta lösenordet..
Problemet är att du kan ha ditt eget användarnamn, sedan kan du använda vilket lösenord som helst i databasen...
HUR gör man så att anv. och lösenord måste finnas på samma rad i databasen??
July 31, 2001
Använd den här koden, så ska det fixa sig.
X = FALSE
Do Until X = TRUE OR RecSet.EOF
If RecSet("login") = Request.Form("login") Then
If RecSet("losen") = Request.Form("losen") Then
Session("losen") = RecSet("losen")
Session("login") = RecSet("login")
X = TRUE
Exit Do
End If
End if
RecSet.MoveNext
Loop
May 24, 2001
Varför göra onödiga loopar?
Enklast är att låta databasen göra jobbet:
...
Conn.Open "blablabla"
Set RS = Conn.Execute("SELECT COUNT(*) FROM Login WHERE Namn = '" & Request.Form("namn") & "' AND Losen = '" & Request.Form("losen") & "'")
If RS(0) = 0 Then ' inga träffar
Response.Redirect("fel.asp")
Response.End
Else ' namn och lösen stämmer
Session("namn") = Request.Form("namn")
Session("losen") = Request.Form("losen")
End If
June 1, 2001
Ja eller ännu bättre:
Set RS = Conn.Execute( "SELECT * FROM Login WHERE Namn = '" & Request.Form("namn") & "' AND Losen = '" & Request.Form("losen") & "'" )
If NOT rs.EOF Then
' Korrekt namn och lösenord
Else
' Inkorrekt namn eller lösenord
End IF
Använd för guds skull inga loopar för att gå igenom en databas och kolla värden.
Använd helst ochså ett fältnamn istället för * i SQL frågan eftersom du aldrig kommer använda datan så är det onödigt att hämta alla fält.
[ Detta Inlägg ändrades av: Nibbler den 2001-07-31 19:56 ]
1 Guest(s)