aggiornamento multiplo record senza form

  • Creatore Discussione Creatore Discussione EmTmE
  • Data di inizio Data di inizio

EmTmE

Nuovo Utente
6 Set 2006
11
0
0
sicilia
Salve a tutti ...
ho questo codice di seguito incollato che nasce per sostituire le password presenti in un database con delle nuove e più sicure password generate con randomize.
In pratica il codice non mi da errori solo che invece di scrivermi le pass (che sono correttamente generate e visualizzate a video) nel database mi ci scrive solo quella dell'ultimo record.
Qualche idea su cosa nn vada nella logica della pagina ?
Grazie in anticipo a chi volesse cimentarsi nel darmi aiuto...
:)
Codice:
<% session("referer")= session("pagina")
session("pagina")= "http://"&request.ServerVariables("HTTP_HOST")&request.ServerVariables("PATH_INFO")&"?"&request.QueryString()
Dim Conn

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&server.mappath("/database/miodb.mdb")


%>
	Dim caratteri, passgen, carattere, ecc. ecc.
	SQL = " SELECT * FROM Utenti Where Confermato=true "
		'Set RS = Conn.Execute (SQL)
		Set RS = server.createobject("adodb.recordset")
		RS.Open sql, Conn, 2, 2
		If Not RS.EOF Then RS.MoveFirst
		Do While Not RS.EoF
			ID = RS("ID")
			Nome = RS("Nome")
			ecc. ecc.
			UserID=RS("UserID")
			Password=RS("Password")
			Confermato=RS("Confermato")
	response.Write("La vecchia pass è : ")
	response.Write RS("Password")
caratteri = "0123456789abcdefghijklmnopqrstuvwxyz" 
Randomize ' inizializza il generatore di numeri casuale 
Do Until len(passgen) = 10 ' qui imposti la lunghezza della password 
carattere = Int((37 * Rnd) + 1) ' Genera un valore casuale compreso tra 0 e z. 
passgen = passgen & Mid(caratteri,carattere,1)
Loop 
Password=passgen
	response.Write(" La nuova pass random è: ")
	response.Write(Password)
	response.Write("<br>")
	passgen=0000000000
	rs.update 
	RS.MoveNext
	Loop
	RS.Close
	Set RS = Nothing
'Conn.Execute sql
'Conn.Close
'Set Conn = Nothing
	SQL = " UPDATE Utenti Set Nome = '"  & Nome & "', Cognome = '"  & Cognome & "', Via = '"  & Via & "', Civico = '"  & Civico & "', CAP = '"  & CAP & "', Citta = '"  & Citta & "', Provincia = '"  & Provincia & "', Stato = '"  & Stato & "', Telefono = '"  & Telefono & "', RagioneSociale = '"  & RagioneSociale & "', CodiceFiscale = '"  & CodFiscale & "', PartitaIva = '"  & PIva & "', Mail = '"  & EMail & "', Password = '"  & Password & "', UserID = '"  & UserID & "' , Confermato = "  & Confermato & " , Rivenditore = " & Rivenditore & " WHERE ID = "  & id
	Conn.Execute(SQL)
	Set RS = Nothing
	Conn.Close
	Set Conn = Nothing
%>
 
Ciao!

Beh, direi che è normale ti salvi solo l'ultimo dato generato, perchè non devi memorizzare le password in una variabile, perchè poi, una volta terminato il ciclo, la variabile mantiene solo l'ultimo valore :)

Devi creare un array, di modo da poter mantenere in esso tutti i valori generati, e poi, tremite un indice li estrai uno ad uno ;)

Questo logicamente parlando, visto che di logica si parlava nella tua richiesta, se hai bisogno di aiuto pratico, facci sapere!

SaLuT!
:byebye:
 
Ciao!

Beh, direi che è normale ti salvi solo l'ultimo dato generato, perchè non devi memorizzare le password in una variabile, perchè poi, una volta terminato il ciclo, la variabile mantiene solo l'ultimo valore :)

Devi creare un array, di modo da poter mantenere in esso tutti i valori generati, e poi, tremite un indice li estrai uno ad uno ;)

Questo logicamente parlando, visto che di logica si parlava nella tua richiesta, se hai bisogno di aiuto pratico, facci sapere!

SaLuT!
:byebye:

e si confermo... avevo risolto infatti...
non restituendo la password random alla variabile del RS era dura che me le scrivesse :)
ora pare tutto ok completo abbellisco e riposto il codice completo e funzionante magari serve a qualcuno ...
inutile dire quanto ti sia grato per avermi dedicato il tuo tempo.
PS dalla tua risposta mi pare ci sia nel codice qualche altra cosa che non ti convince ... Sbaglio ? a parte il doppio update che nella pagina online avevo già eliminato dal loop ...
 
ora pare tutto ok completo abbellisco e riposto il codice completo e funzionante magari serve a qualcuno ...
Ottima idea, grazie a nome di tutti :fonzie:

inutile dire quanto ti sia grato per avermi dedicato il tuo tempo.
PS dalla tua risposta mi pare ci sia nel codice qualche altra cosa che non ti convince ... Sbaglio ? a parte il doppio update che nella pagina online avevo già eliminato dal loop ...
Figurati, sono qui apposta :)
Comunque no, se il tuo codice funziona non mi permetterei mai di giudicare la tua metodologia logica, perchè ogni programmatore ha la sua ;)

Buon lavoro!

PS=attendiamo il codice eh :D
 
per la parte commenti alla logica sono sempre disponibile al miglioramento di solito nella prima stesura bado solo a che funzioni poi dopo nel caso vedo per le ottimizzazioni anche se in questo caso è una procedura da admin quindi usata na volta ogni morte di Papa...:mavieni:
Per cui ribadisco se hai voglia e modo dimmi pure che ci lavoro con piacere.
Il codice completo lo posto anche abbinando la funzione di notifica via mail dell'avenuto cambio di pass agli utenti registrati in modo che sia ancora più completo.
Spero di avere nel fine settimana il tempo di ultimare il tutto.
Sempre grazie per il tempo ....
Ovviamente spero quanto prima di poter ricambiare :)
 

Discussioni simili