Mon sautées système d'enregistrement des comptes procède ainsi:sur le registre, vérifiez si le nom d'utilisateur existe - problème de capitalisation
- formulaire d'inscription complet
- vérifier si le nom d'utilisateur existe déjà - rejeter/pass
- copie des données à température table utilisateur, envoyez un courriel de confirmation
- sur l'utilisation lien dans l'email de confirmation, copier les données de température à la table d'utilisateur actif
L'autre jour, un utilisateur m'a envoyé un e-mail pour me dire qu'il recevait le message d'erreur "Impossible de créer l'utilisateur".
Je ne me souvenais pas avoir jamais entendu ça, donc je creusé dans mon code d'enregistrement et que l'erreur ressorte si la requête pour insérer les données temporaires dans la table d'utilisateur actif échoue.
Il a échoué parce que son nom d'utilisateur, qui a un index unique dans la table, existait déjà dans le tableau utilisateur actif ... mais il avait passé la vérification du nom d'utilisateur existant initial ...?
se sont avérés le nom qu'il avait essayé d'enregistrer était « Utilisateur », mais il y avait déjà un « utilisateur » - donc insensibilité à la casse est entrée en jeu.
Est-ce que le nom d'utilisateur existe? chaîne de requête:
SELECT username FROM user_basic_data WHERE username='$cleanTempUsername'
confirmé, insérez maintenant en chaîne de table active: (! "Utilisateur" = "user")
INSERT INTO user_basic_data (username, ...) VALUES ('$activeUsername', ...)
Ainsi, le sensibilité à la casse applique apparemment lorsque je lance une instruction select mais ne s'applique pas lorsque je lance un insert.
est important de capitalisation de nombreux utilisateurs, alors quel est mon solution de moindre résistance d'ici?
Est-ce que le changement de classement affecte maintenant mes données? Ou est-ce un genre de chose qui n'est pas sûr, qui vérifie et vérifie? – Drew
Il devrait convertir automatiquement les données au nouveau classement sans le modifier. La seule fois où vous rencontrez des problèmes, c'est que vous passez d'une sensibilité à la casse à l'insensibilité. –