PDA

Visualizza la versione completa : Next Record Login


giorgio1
07-08-2001, 11:01
Sapreste dirmi perchè non funge il seguente codice(riporto solo il codice che confronta i valori inviati dal form con quelli presenti in un database), premetto che ho testato la connessione al database e funge, utilizzando il response.write ho potuto vedere che non esegue il loop anzi lo esegue tante volte quante sono le n-ple ma i valori di user e pws sono sempre gli stessi, uguali a quelli della prima n-pla;
quindi se i valori inviati dal form sono uguali a questi ultimi mi da welcome, se provo però ad inserire i valori presenti nella seconda o terza mi da errore

<%

myname=request.form("username")
mypassword=request.form("password")
user=objRs("user")
psw=objRs("psw")
checkLogin = false

Do While NOT objRs.EOF

if (myname=user And mypassword=psw) then
checkLogin = True
End If
objRs.Movenext
Loop


If (checkLogin = True) Then
response.write "Welcome"
else
response.write "Errore"

End If

%>

Play X (http://playx.interfree.it)

Dhavide
16-08-2001, 21:36
Ciao Giorgio,

Il tuo codice non funziona perché hai commesso un lieve errore nella sequenza delle istruzioni: la sequenza corretta è quella che segue:

<%

myname=request.form("username")
mypassword=request.form("password")
checkLogin = false

Do While NOT objRs.EOF

user=objRs("user")
psw=objRs("psw")
if (myname=user And mypassword=psw) then
checkLogin = True
End If
objRs.Movenext
Loop


If (checkLogin = True) Then
response.write "Welcome"
else
response.write "Errore"

End If

%>

Ovviamente il loop ti confrontava i valori di account e password solo con la prima tupla, in quanto non riassegnavi alle variabili in gioco i valori nuovo, alla successiva iterazione.

Comunque, invece di iterare in questo modo, ti posso consigliare un sistema molto più veloce (:

<%

Dim SQL
SQL = "SELECT * FROM nomeTabella WHERE user='" & Request.Form ("username") & "' AND psw='" & Request.Form ("password") & "'"

objRs.Open SQL,objConn,1,3

If (objRs.RecordCount > 0) Then
response.write "Welcome"
else
response.write "Errore"
End If

%>

Ovviamente al posto di nomeTabella dovrai mettere il nome della tabella che contiene la tua lista di account e password, mentre al posto di objConn dovrai mettere il nome della variabile che utilizzi per la connessione al database.

p.s.: Altro trucco. Al posto di Request.Form ("nomeCampo") puoi utilizzare più semplicemente Request ("nomeCampo"), che ti prende sia il Request.Form che il Request.QueryString. ;)

Ciao Ciao by Dhavide - eternamente diviene - :D