J3.x

J3.x:Les noms d'utilisateur en double provoquent un problème de mise à jour

From Joomla! Documentation

Revision as of 22:40, 11 April 2020 by FuzzyBot (talk | contribs) (Updating to match new version of source page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Other languages:
Deutsch • ‎English • ‎Nederlands • ‎Türkçe • ‎español • ‎français • ‎italiano • ‎Ελληνικά

Sur certains sites Web, la mise à jour vers Joomla 3.9.16 entraîne une erreur de base de données en raison de noms d'utilisateur en double. Si cela se produit, ne paniquez pas - la mise à niveau a été presque entièrement terminée sans problème, et le changement restant peut être appliqué à la base de données après avoir suivi les instructions ci-dessous.

Erreurs signalées

Les utilisateurs reçoivent une erreur de mise à jour concernant une requête de base de données ayant échoué en raison d'une clé dupliquée dans leur site #__users lors de la mise à niveau de Joomla 3.9.15 ou version antérieure.

Joomla 3.9.16 Upgrade Error

Versions affectées

Informations générales

Ceci ne concerne que la version Joomla : 3.9.16

Quelle est la cause

Votre site Web compte plusieurs utilisateurs dans la #__users table avec le même nom d'utilisateur, ce qui est un problème de sécurité dans la mesure où le mauvais compte peut être consulté par le mauvais propriétaire du compte.

Comment résoudre l'anomalie ?

Vous devrez revoir votre #__users table dans votre base de données et corriger tout nom d'utilisateur en double en supprimant les anciens comptes d'utilisateur ou en changeant le nom d'utilisateur jusqu'à ce que tous les noms d'utilisateur soient uniques. Une fois cette opération terminée, si vous avez déjà effectué une mise à niveau vers la version 3.9.16, exécutez l'outil de réparation de schéma de base de données pour terminer la mise à niveau (cette étape n'est pas requise si vous effectuez cette révision avant la mise à niveau).

Joomla n'est pas en mesure de déterminer automatiquement l'action correcte à prendre et, par conséquent, ne peut pas effectuer cette étape pour vous - elle doit être corrigée par vous en tant que propriétaire du site.

La requête SQL suivante peut être exécutée sur votre base de données pour afficher les noms d'utilisateur dupliqués:

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"