<% If Request.QueryString("login") = "yes" Then %>
<% Check = "Select * FROM users"
RecSet.Open Check, Connect, adOpenStatic, adLockOptimistic
RecSet("username") = Request.Form("username")
RecSet("password") = Request.Form("password") %>
<% If RecSet("username") = Request.Form("username") AND RecSet("password") = Request.Form("password") Then %>
rätt
<% Else %>
fel
<% End If %>
<% End If %>
Jag har öppnat databasen tidigare.
Felet blir det att oavsett man skriver rätt eller fel lösenord kommer man till "rätt"..
Jag har gjort på detta sätt tidigare och jag har även kollat på många andra som gjort på ett liknande sätt fast då loopade man det och jag har lyckats med det utan loop
:bla
Nja, det tvivlar jag på att du gjort! Som du gär nu är att du sätter RecSet("username") och RecSet("password") till vårdena du får från formuläret och sen kollar du om det är de värderna, klart att man kommer in då.
<% If Request.QueryString("login") = "yes" Then %>
<% Check = "Select * FROM users"
RecSet.Open Check, Connect, adOpenStatic, adLockOptimistic
%>
<% If RecSet("username") = Request.Form("username") AND RecSet("password") = Request.Form("password") Then %>
rätt
<% Else %>
fel
<% End If %>
<% End If %>
<% If Request.QueryString("login") = "yes" Then %>
<% Check = "Select * FROM users WHERE username='" & Request.Form("username") & "'"
RecSet.Open Check, Connect, adOpenStatic, adLockOptimistic
If RecSet("password") = Request.Form("password") Then %>
rätt
<% Else %>
fel
<% End If %>
<% End If %>
Jag ändrade lite och har nu testat, det skall funka
Kontrollera databasen.
<%
Set RecSet = Server.CreateObject("ADODB.Recordset")
Check = "Select * FROM users"
RecSet.Open Check, Connect, 1, 2
%>
<% If RecSet("username") = Request.Form("username") AND RecSet("password") = Request.Form("password") Then %>
rätt
<% Else %>
fel
<% End If %>
Är kanske inte med på vad Poffe menar riktigt, det är sant att mitt förslag endast fungerar på en användare.
Men jonnyz skall väl fungera?
Jag ändrade lite och kom fram till följande, om du nu har fler användare:
<%
' För hindrar dubbelsnuttar i fälten
Function escape(input)
input = Replace(input, "'", "''")
escape = input
End Function
' Kan byggas på att om fälten är tomma så kör man redirect
if Request.Form("username") = "" AND Request.Form("password") = "" then
Response.Redirect "login.asp"
End if
Set RecSet = Server.CreateObject("ADODB.Recordset")
Check = "Select * FROM users WHERE username='" & escape(Request.Form("username")) & "'"
RecSet.Open Check, Connect, 1, 2
If NOT RecSet.EOF Then
If RecSet("password") = Request.Form("password") Then %>
rätt lösenord
<% Else %>
fel lösenord
<% End If %>
<%ELSE%>
Ooops! Fel användare
<%END IF%>
Det du kan förändra med
Ooops! Fel användare
att lägga in en redirect istället.
Detta är ett förslag, det borde funka då jag själv har testat det lite snabbt.