Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135

    Requested operation requires a current record

    Ciao.

    Sto mettendo a punto un sistema di login che prevede in caso di disattivazione utente l'attivazione automatica (l'utente potrà far da solo).

    1) L'utente viene disattivato;
    2) Riceve un msg email con una nuova psw (provvisoria);
    3) Cambia la psw provvisoria con la sua definitiva;
    4) Controllo che la nuova psw inserita sia diversa dalle ultime tre.

    Tutto funziona tranne quando l'utente sbaglia a copiare la psw provvisoria, infatti lo script restituisce quest'errore:

    codice:
    Error Type:
    ADODB.Field (0x800A0BCD)
    Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
    In corrispondenza della riga segnata in grassetto :


    codice:
    strUser = request.form("user")
    		strCode1 = request.form("psw_provv")	 
    		strCode2 = request.form("psw_new")
    		strCode3 = request.form("psw_new1")
    
    		strMail= request.form("mail")
    	
    	if(strUser<>"")AND(strCode1<>"")AND(strCode2<>"")AND(strCode2=strCode3)AND(strMail<>"") then
    		
    		'Apertura del database
    
    		Set Conn=Server.CreateObject("ADODB.Connection") 
    
    		strConn="driver={Microsoft Access Driver (*.mdb)}; " 
    		strConn=strConn & " DBQ=" & Server.MapPath("../mdb/cat.mdb") 
    
    		Conn.Open (strConn)
    		strSql = "SELECT * FROM utenti WHERE userName='"&strUser&"' AND userCode='"&strCode1&"'"
    		Set rs = Server.CreateObject("ADODB.Recordset")
    		rs.Open strSql, conn , 3, 3	
    		
    		UserCode = rs("UserCode")
    		UserCodeDue = rs("UserCodeDue")
    		UserCodeTre = rs("UserCodeTre")
    		UserCodeNuova = strCode2
    		UserID = rs("Utente_ID")
    			
    		if not(rs.eof) then
    	
    if UserCodeNuova = UserCode or UserCodeNuova = UserCodeDue or UserCodeNuova = UserCodeTre then
    
    response.write ("Questa password è già stata utilizzata in passato.")
     
    else
    
    				rs(1)=strUser
    				rs(2)=strCode2
    				rs(3)=strMail
    
    				
    		rs.update
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  2. #2
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    955

    Re: Requested operation requires a current record

    codice:
    	
    		
    		UserCode = rs("UserCode")
    prima di accedere al campo del recordset devi controllare che tu non sia su eof o bof (in pratica se sbagli la password immagino che la ricarca sul DB fallisca, quindi non hai un record da testare!)
    Metti if !rs.EOF then il tuo codice

  3. #3
    trodino, intercetta l'errore controllando .EOF, dovresti saperlo fare oramai, no?

  4. #4
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Originariamente inviato da optime
    trodino, intercetta l'errore controllando .EOF, dovresti saperlo fare oramai, no?
    Infatti ci avevo già provato ma con il controllo mi dice sempre che la psw nuova è stata già utilizzata anche se non è vero:

    codice:
           if (rs.eof) then
                             
    UserCode = rs("UserCode")
    		UserCodeDue = rs("UserCodeDue")
    		UserCodeTre = rs("UserCodeTre")
    		UserCodeNuova = strCode2
    		UserID = rs("Utente_ID")
        
           end if
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  5. #5
    da come hai usato .eof deduco che tu non sappia cos'è... o è solo un errore di battitura?

  6. #6
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Originariamente inviato da optime
    da come hai usato .eof deduco che tu non sappia cos'è... o è solo un errore di battitura?
    L'ho riscritto:

    codice:
           if rs.eof then
                             
                             UserCode = rs("UserCode")
    		UserCodeDue = rs("UserCodeDue")
    		UserCodeTre = rs("UserCodeTre")
    		UserCodeNuova = strCode2
    		UserID = rs("Utente_ID")
        
           end if
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  7. #7
    na na na na. non va bene così...

    EOF vuol dire End Of File.

    tu hai scritto una cosa del genere.

    prendimi due patate dal cestino
    se non ci sono più patate nel cestino
    prendi la prima patata

    ti pare gggggiusto?

  8. #8
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Diavolaccio di un'Optime... ho CAPITO!!!!

    ed ho anche risolto (sembra...)

    codice:
                    strUser = request.form("user")
    		strCode1 = request.form("psw_provv")	 
    		strCode2 = request.form("psw_new")
    		strCode3 = request.form("psw_new1")
    
    		strMail= request.form("mail")
    	
    	if(strUser<>"")AND(strCode1<>"")AND(strCode2<>"")AND(strCode2=strCode3)AND(strMail<>"") then
    		
    		'Apertura del database
    
    		Set Conn=Server.CreateObject("ADODB.Connection") 
    
    		strConn="driver={Microsoft Access Driver (*.mdb)}; " 
    		strConn=strConn & " DBQ=" & Server.MapPath("../mdb/cat.mdb") 
    
    		Conn.Open (strConn)
    		strSql = "SELECT * FROM utenti WHERE userName='"&strUser&"' AND userCode='"&strCode1&"'"
    		Set rs = Server.CreateObject("ADODB.Recordset")
    		rs.Open strSql, conn , 3, 3	
    
      if not(rs.eof) then
    		
    		UserCode = rs("UserCode")
    		UserCodeDue = rs("UserCodeDue")
    		UserCodeTre = rs("UserCodeTre")
    		UserCodeNuova = strCode2
    		UserID = rs("Utente_ID")
    			
    
    	
    if UserCodeNuova = UserCode or UserCodeNuova = UserCodeDue or UserCodeNuova = UserCodeTre then
    
    response.write ("Questa password è già stata utilizzata in passato.")
     
    else
    
    				rs(1)=strUser
    				rs(2)=strCode2
    				rs(3)=strMail
    
    				
    		rs.update
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  9. #9
    Originariamente inviato da [trodat]
    Diavolaccio di un'Optime... ho CAPITO!!!!
    ho usato apposta l'esempio delle patate perché *sapevo* che per te sarebbe stato illuminante

  10. #10
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Originariamente inviato da optime
    ho usato apposta l'esempio delle patate perché *sapevo* che per te sarebbe stato illuminante
    Come sai che faccio il *fruttarolo* ??? VVoVe:

    Ah, già è vero per come scrivo ASP.... :maLOL:
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.