View Full Version : [MySql] come salvo gli utenti?
adirontack
30-01-2007, 22:28
Devo passare gli Utenti da un forum ad un altro; entrambi sono del tipo "invision power board", solo che nel primo (quello con gli utenti), a causa degli add-on che nel tempo ho aggiunto, si sono creati campi nella TABELLA che contiene i dati degli utenti che nel secondo non ci sono e che non mi servono.
Ovviamente quando provo ad eseguire la query in phpmyadmin, mi riporta errori perchè i campi non corrispondono; la query che eseguo è del tipo: INSERT INTO `ibf_members` (`id`, `name`, `mgroup`, `email`, etc...
(1, 'adirontack', 4, '
[email protected]',etc...),
come faccio a far ignorare i campi in più che ci sono nella tabella?
Voi come fareste?
Grazie in anticipo e chiedo scusa se l'esposizione del caso lascia a desiderare.
Fai una copia della tabella (struttura e dati) e poi con alter table elimini i dati che non ti servono...
adirontack
31-01-2007, 12:46
Fai una copia della tabella (struttura e dati) e poi con alter table elimini i dati che non ti servono...
Fatto!
Ho ridotto i campi allo stretto necessario (ID, username, email, password codificata); importo nella nuova tabella ma quando vado a tentare il login mi dice che l'utente non esiste, eppure nel DB c'è...
Grazie dell'aiuto ;)
edit: ho aggiunto anche gli altri campi mancanti, in pratica ora i record sono completi ma il problema persiste Impossibile trovare un utente registrato con i dati inseriti
Mi ammazzano :P :muro:
Come sono salvate le password ??? MD5 o in chiaro ? O cos'altro ? Le versioni di MySQL sono le stesse ?
adirontack
31-01-2007, 12:52
Come sono salvate le password ??? MD5 o in chiaro ? O cos'altro ? Le versioni di MySQL sono le stesse ?
Le password son in MD5 (penso, riporto un esempio 8e008baa6a92xxxxb7618dcae5939db5).
Le 2 versione di MySQL non sono uguali, ma ho la possibilità di prendere i dati da una versione uguale; pensi possa essere questo il problema? Intanto provo.
Bisogne vedere il metodo utilizzato dal forum per salvare le password degli utenti... Se ha usato la funzione PASSWORD() di MySQL questa è variata fra la versione 4 e la versione 5, per usare il vecchio sistema dovresti usare OLD_PASSWORD()...
Fai questa prova, dalla nuova versione fai un nuovo utente con la password uguale a quella di un utente che conoscevi...e poi verifichi se sono uguali...
Comunque ad occhio è uno SHA1...che bene o male è rimasto costante, ma fai comunque la prova sopra...
mysql> select SHA1("pass");
+------------------------------------------+
| SHA1("pass") |
+------------------------------------------+
| 9d4e1e23bd5b727046a9e3b4b7db57bd8d6ee684 |
+------------------------------------------+
adirontack
31-01-2007, 13:59
Fai questa prova, dalla nuova versione fai un nuovo utente con la password uguale a quella di un utente che conoscevi...e poi verifichi se sono uguali...
Sono diverse :(
Ma il problema è che non riconosce proprio l'utente, ad un tentativo di recupero password mi dice che l'utente è inesistente anche se nel database risulta!!!
Ora faccio qualche prova in locale. Grazie per l'interessamento.
Codificare da MD5 è impossibile (e giustamente) vero? Se fosse possibile ricreerei gli account manualmente... ma non penso si possa fare.
MD5 e SHA1 sono fingerprint...quindi non è possibile tornare al valore iniziale...
Comunque è strano che non trovi gli utenti...boh... La creazione di un nuovo utente invece avviene regolarmente ? Hai visto le variazioni che vengono fatte a tutte le tabelle aggiungendo un nuovo utente ?
adirontack
31-01-2007, 19:10
Niente :(
Ora ho creato un nuovo utente dal forum con password 1234, l'MD5 dal DB e l'ho incollato ad un vecchio utente.
COsì facendo il login sarebbe diventato user:VECCHIOUTENTE pass:1234 ma al login mi da errore di password non corretta.
Ho anche provato a creare un nuovo utente "clonando" quello precedente dal phpmyadmin usando lo stesso MD5, ma niente.
Ma è corretta la procedura? Cioè... una password estrapolata dal database in MD5 e usata in una nuova voce, dovrebbe tornare al valore originale quando richiamata?
Le prove sono state fatte su MySql identici.
adirontack
01-02-2007, 02:35
Risolto :D :D
Per i posteri: le password utenti, IPB non le memorizza nella tabella ibf_members alla voce member_login_key, ma in ibf_members_converge alle voci converge_pass_hash & converge_pass_salt :rolleyes: :rolleyes:
Grazie di tutto cionci
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.