5 messaggi dal 29 maggio 2004
dim presente
presente = False
while not((rs.EOF) and (presente = True))
if ((rs(1) = strUserName) And (rs(2) = strPassword)) then
presente = True
end if
rs.movenext
wend

Questo è il codice che sto utilizzando in un sito per gestire l'accesso all'area privata. Quando un utente si registra viene inviato per e-mail l'username e la password.
Se provo ad entrare nell'area privata con dati esatti va tutto bene. Se provo ad entrare con dati inventati, per controllare la risposta del sito, ho un errore sull'if.
Come mai?
97 messaggi dal 21 agosto 2003
www.tornavento.it
se postassi l'errore sarebbe meglio . . .

Alberti s.r.l.
Concessionaria Olivetti
http://www.ticom.it
0331.56.97.48
5 messaggi dal 29 maggio 2004
Tipo di errore:
(0x80020009)
Eccezione.
/sito2/accesso.asp, line 27


Questo è il tipo di errore che mi da sull'if.
62 messaggi dal 05 dicembre 2003
Secondo me è sbagliato il test del while, come lo hai scritto tu puo entrare anche quando il recordset è vuoto.

dovresti provare così

while (not rs.EOF) AND (not presente)

Ciao
512 messaggi dal 30 maggio 2002
Forse ti può essere utile ed è sicuramente più semplice:

Set RS = objConn.Execute("SELECT tuoCampo FROM tuaTabella WHERE campoUsername = '" & strUserName & "' And campoPassword = '" & strPassword & "'"

if not rs.EOF Then
...trovato...
else
...non trovto...
End if

se sapessero cosa penso sarei già morto...
5 messaggi dal 29 maggio 2004
Ho risolto così l'errore. Probabilmente era il not che dava problemi.


dim presente
presente = False
while (not(rs.EOF) and (presente = false))
if ((rs(1) = strUserName) And (rs(2) = strPassword)) then
presente = True
end if

Cmq ringrazio tutti quelli che mi hanno dato dei consigli.
11.886 messaggi dal 09 febbraio 2002
Contributi
segui il consiglio di pegaso, anche se non è sbagliato quello che hai fatto.

Semplicemente non è conveniente selezionare tutti i record e poi scorrerli con un ciclo, se l'applicazione diventa grande e hai migliaia di utenti la pagina potrebbe cominciare a rallentare l'esecuzione. ciao

Enjoy learning and just keep making
95 messaggi dal 18 aprile 2001
Scusa Pegaso ma
Forse ti può essere utile ed è sicuramente più semplice:

Set RS = objConn.Execute("SELECT tuoCampo FROM tuaTabella WHERE campoUsername = '" & strUserName & "' And campoPassword = '" & strPassword & "'"

forse è più semplice per un malintenzionato autenticarsi senza averne diritto:

prova a inserire nel form di autenticazione sia nel campo use che in quello password il seguente testo e guarda che succede:
' or 'a' = 'a


si chiama SQL Injection...

saluti
Modificato da cobra82 il 04 agosto 2004 14.02 -

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.