I nomi utente duplicati causano problemi di aggiornamento
From Joomla! Documentation
In alcuni siti web, l'aggiornamento a Joomla 3.9.16 comporta un errore nel database a causa della duplicazione dei nomi utente. Se questo accade non fatevi prendere dal panico - l'aggiornamento è stato per lo più completato senza problemi e funziona come al solito, la modifica del database rimanente può essere applicata dopo aver seguito le istruzioni riportate di seguito.
Errori segnalati
Gli utenti ricevono un errore di aggiornamento relativo a una query di database non riuscita a causa di una chiave duplicata nel loro sito #__users
tabella in caso di aggiornamento da Joomla 3.9.15 o superiore.
Versioni interessate
Questo riguarda solo la(e) versione(i) di Joomla!: 3.9.16
Qual è la causa
Il vostro sito web ha più di un utente nel #__users
con lo stesso nome utente, il che è un problema di sicurezza in quanto l'account non corretto può essere accessibile dal proprietario dell'account sbagliato.
Come risolvere
Dovrete rivedere il vostro #__users
nel vostro database e correggere eventuali nomi utente duplicati rimuovendo i vecchi account utente o cambiare il nome utente fino a quando tutti i nomi utente sono unici. Una volta terminato questo passaggio, se avete già eseguito l'aggiornamento alla 3.9.16 eseguite lo strumento di correzione dello schema del database per completare l'aggiornamento (questo passaggio non è necessario se fate questa revisione prima dell'aggiornamento).
Joomla non è in grado di determinare automaticamente l'azione corretta da intraprendere e di conseguenza non è in grado di eseguire questo passo per voi - deve essere fissato da voi come proprietario del sito.
Le seguenti query SQL possono essere eseguite sul vostro database per visualizzare quali nomi utente sono duplicati:
SELECT username FROM #__users GROUP BY username HAVING COUNT(*) > 1
One possible way to make resolving this simpler might be to remove all users who have never visited the site. Though this should be done with care, and ensure to backup the table first. After running this query, you can check again how many duplicate users you have.
DELETE FROM #__users WHERE lastvisitDate = "0000-00-00 00:00:00"