PDA

View Full Version : Modificare i dati di un database tramite login utente


Menion83
20-09-2006, 21:21
Ciao Ragazzi!
Ho un problema con una modifica. Ho creato un Database e all'interno di questo database c'è una tabella che contiene vari dati.
Ho necessità per gli utenti di poter far loro modificare i dati qualora si siano sbagliati in fase di registrazione. Ho creato quindi una pagina login_modifica e ho fatto una form che in base al campo password e nome_utente, indirizzasse la pagina modifica sui campi di quel determinato utente. Il problema è che mi da questo errore:

ADODB.Recordset error '800a0bcd'

Either BOF or EOF is True, or the current record has been deleted.
Requested operation requires a current record.

Il Recordset esiste non ci sono dubbi perchè se vado in modifica da Dreamweaver e inserisco la password e l'username, forzandolo, mi visualizza la pagina con tutti i dati dell'utente.

Il dubbio è che forse non passa i dati in modo corretto...

Nella login ho fatto una form chiamata Login e ho messo due campi di testo: Password e Utente. Poi da Dream mi sono connesso al database e ho fatto il login utente con la procedura, infatti la pagina Modifica me la apre.

Sulla pagina modifica eseguo questa query:

SELECT *
FROM tabelle
WHERE password LIKE 'varpassword' AND utente LIKE 'varutente'

Nell'interrogazione definisco le varibili varpassword e varutente in questo modo:

varpassword - predefinito=1 - Request.form("password")
varutente - predefinito=1 - Request.form("utente")

Ma niente.

Ho provato anche interrogando la query:

varpassword - predefinito=1 - Request.QueryString("password")
varutente - predefinito=1 - Request.QueryString("utente")

Niente.

Come posso risolvere questo errore?

Vi ricordo che forzando il predefinito delle variabili, cioè mettendo al posto di 1 il nome utente e la password e aprendo direttamente la pagina modifica, funziona alla perfezione. Deve essere quindi qualcosa che passa male dalla form della pagina login, ma cosa?

Spero in un vostro aiuto!
CIAO!

Menion83
21-09-2006, 15:01
Risolto!
CIAO!

Traxsung
21-09-2006, 22:14
Perchè non dici come hai risolto?? Potrebbe servire anche ad altri utenti ;)

Menion83
22-09-2006, 12:49
Ecco il procedimento adottato:

Set Recordset1 = Server.CreateObject ("ADODB.RecordSet")
strSQL = "SELECT * FROM Utenti WHERE username='" & str_username & "' AND password='" & str_password & "'"
Recordset1.open strSQL,adoCon

'Se la combinazione username e password non esiste, reindirizzo l'utente ad un altra pagina
If Recordset1.EOF _
Or Recordset1.BOF Then
Response.Redirect("errore.asp")
Else
'Scrivo l'user code nel cookie
Response.Cookies("Login")("userCode") = Recordset1("code")
'Reindirizzo alla pagina appropriata
Response.redirect("visualizza_profilo.asp")
End If
End if

CIAO!