[Résolu] Longueur (trop) limitée pour le Login d’un compte (Créer un compte)

  • WordPress :6.7
  • Statut : résolu
9 sujets de 1 à 9 (sur un total de 9)
  • Auteur
    Messages
  • #2484193
    cgilbert
    Participant
    Initié WordPress
    5 contributions

    Bonjour,

    Ma configuration WP actuelle

    • Version de PHP/MySQL : MySQL v.8.0
    • Thème utilisé : plexx
    • Extensions en place :
    • Nom de l’hébergeur : OVH
    • Adresse du site :

    Problème(s) rencontré(s) : Lors de la création de nouveaux comptes, on est limité à 60 caractères pour le login ; dans la table _users, le user_login est du type varchar(60). Pour des raisons professionnelles, je dois pouvoir insérer des login de 130 à 150 caractères (des ID opaques). Si je le fais manuellement dans le dashboard, le login « trop long » est tronqué, logique, et le nouveau compte est quand même créé. J’ai modifié le paramètre dans la table et désormais le user_login est varchar(200). Mais via le dashboard, le login « trop long » est toujours tronqué et est toujours limité à 60 caractères. Il faut probablement modifier autre chose, mais quoi ?

    (Dans ma configuration, le username/login d’un nouveau membre est (devra être) inséré automatique suite à une connexion SSO. La demande de connexion/création est rejetée – car l’ID est trop long – et le compte n’est même pas crée à la différence de la création « manuelle »).

    Merci à la communauté si vous avez une idée pour résoudre mon petit problème.

    Cyril

    #2484213
    momofr@free.fr
    Modérateur
    Maître WordPress
    7451 contributions

    Salut, il faut voir avec un développeur PHP, je ne trouve pas de ressources pour « allonger » le login WP, les demandes sont inverses pour « limiter » à moins de 60 caractères.

    #2484220
    cgilbert
    Participant
    Initié WordPress
    5 contributions

    OK merci je vais voir ça.

    Une question : quand il y a une mise à jour de wordpress automatique, la base de données est-elle impactée ?

    #2484227
    cgilbert
    Participant
    Initié WordPress
    5 contributions

    En fait je pense que j’ai trouvé comment augmenter la longueur possible pour un username/login.

    Si ça intéresse quelqu’un dans la communauté, voici ce que j’ai fait pour mettre à xxx (dans mon cas 200 car j’y suis obligé) la longueur maxi d’un login (initialement à 60) :

    • dans la bdd wp -> dans la table _users -> changer le type user_login -> varchar(xxx)
    • dans wp-admin -> dans usr_new.php -> max length= »xxx »
    • dans wp-includes -> dans user.php -> ($user_login) > xxx

    Merci

    #2484228
    ferman
    Modérateur
    Maître WordPress
    7365 contributions

    Merci pour le retour, cela est intéressant. Bravo pour avoir trouvé cette méthode. Mais vous n’avez pas rencontré de difficultés en changeant le varchar dans la BDD ? Vous n’avez pas dû modifier la valeur défaut pour la date « user_registered » ?  Pour la base de données, je ne sais pas mais pour les wp-admin et wp-includes je pense qu’ils seront réinitialisés lors des mises à jour de wp et qu’il faudra les re-modifier. Je ne sais pas mais cela risque de poser problème pour les comptes créés avec de longs identifiants. Je pense que la méthode est à essayer soigneusement sur un site d’essai avant de l’appliquer réellement.

    #2484242
    cgilbert
    Participant
    Initié WordPress
    5 contributions

    Bonjour ferman,

    « Mais vous n’avez pas rencontré de difficultés en changeant le varchar dans la BDD ? Vous n’avez pas dû modifier la valeur défaut pour la date « user_registered » ? »

    non pas de difficultés en changeant le type. En fait je n’ai pas de comptes autres que Admin et comptes de tests pour le moment ; et ils ne semblent pas impactés.

    « pour les wp-admin et wp-includes je pense qu’ils seront réinitialisés lors des mises à jour de wp et qu’il faudra les re-modifier »

    OUI je pense et cela m’inquiète. Pour le moment je ne suis pas en production donc pas de soucis. Effectivement j’ai une mise à jour auto de wp (ce qui est une bonne chose). Pensez-vous que je puisse passer la maj en manuelle ? je ne sais pas s’il faut le paramétrer dans wp ou chez l’hébergeur ?? Quant aux nouvelles versions de wp il faudrait que je récupère le dossier, fasse les correctifs et l’installe avec mes corrections (??) Je ne sais pas si c’est la bonne manière et si c’est faisable aisément.

    Merci.

    Cyril

     

    #2484244
    ferman
    Modérateur
    Maître WordPress
    7365 contributions

    Bonjour,

    non pas de difficultés en changeant le type

    Qu’appelez-vous « le type »? Vous voulez dire le mode SQL comme ICI?

    Pour les mises à jour wordpress, souvent on se contente d’automatiser les mises à jour « mineures »  et de faire manuellement les « majeures ». C’est ce qui est prévu par défaut. On peut depuis le tableau de bord choisir de faire automatiquement toutes les mises à jour automatiquement. Pour rendre toutes les mises à jour manuelles  (majeures et mineures) on peut passer par wp-config.

    Quant aux nouvelles versions de wp il faudrait que je récupère le dossier, fasse les correctifs et l’installe avec mes corrections (??)

    Oui, c’est ce qu’il faudrait faire mais vraiment ce serait galère (deux fichiers du coeur de wordpress à modifier, ce qui n’est jamais recommandé) + normalement l’input « identifiant » lors de la création de compte est limité à 60 caractères ce qui nécessite encore une modification si on veut pouvoir entrer un identifiant plus long.

    Quelqu’un prétend avoir résolu le problème avec une extension. J’en doute un peu mais je n’ai pas essayé. (et il y a peu d’explications).

    • Cette réponse a été modifiée le il y a 2 semaines et 5 jours par ferman.
    #2484246
    cgilbert
    Participant
    Initié WordPress
    5 contributions

    Je me suis mal exprimé. Je n’ai pas « changé » le type de la variable, juste le paramètre : varchar(60) -> varchar(200).

    Merci de m’avoir confirmé que les mises à jour  auto sont les mise à jour mineures (et de sécurité, je crois avoir lu) et que, oui, on peut passer par wp-config  pour passer en manuel.

    Effectivement ce n’est pas top de modifier les fichiers, je suis d’accord, même si les 3 modifications sont mineures (et chaque fois faire la même chose 60->200) : changer le paramètre du type dans la bdd, changer le paramètre pour le tableau de bord (l’input du formulaire) et changer paramètre de la condition (if…) de contrôle de longueur dans le php qui injecte dans la bdd. Il n’y a rien de vraiment critique, sachant de plus que mes ID sont fournies par le ministère et ne comportent pas d’injection SQL 😉 (cf.fichier joint)

    max 60 caractères c’est beaucoup pour certains usages de site wp (surtout s’il y a affichage, ce qui n’est pas mon cas puisque j’utilise/rai un autre attribut) et que les abonnés doivent utiliser leur Login au lieu de leur mail (mais moi ils passent par la porte SSO donc n’ont rien à faire).

    Ce qui m’interpelle c’est que j’ai lu que sur certaines config, wp tronque le login à 60 caractères s’il est trop long… et semble quand même créer le compte ! (pour moi il y a un message d’erreur et bloque. Fonctionnement logique)

    En fait si mon login de 130-150 caractères était tronqué automatiquement à 60 ça m’irait très bien ! …

    …je n’ai pas besoin de tous les caractères de l’ID opaque fournis par le Provider. J’ai juste besoin que le compte soit créé avec un identifiant… et je n’ai que celui-là à ma disposition !

    Il est vrai que (toujours) les administrateurs de wp cherchent éventuellement plutôt à imposer un max de caractères  inférieur à la valeur 60… ce qui est plus facile.

    En fichier joint copie d’écran d’un compte avec un Login >60

    Fichiers joints :
    Vous devez être connecté pour voir les fichiers joints.
    #2484250
    ferman
    Modérateur
    Maître WordPress
    7365 contributions

    juste le paramètre : varchar(60) -> varchar(200).

    Dans mon cas le changement ne se faisait pas de manière aussi simple et entraînait des problèmes (d’où ma question). Une configuration  ou une version différente de MySQL? Peu importe, je ne vais pas essayer d’éclaircir ce (petit) problème.

    Quant au SSO, c’est quelque chose qui m’est totalement étranger. Par contre:

    En fait si mon login de 130-150 caractères était tronqué automatiquement à 60 ça m’irait très bien ! …

    Je comprends que c’est simplement pour des raisons « esthétiques »et dans ce cas c’est facile à faire avec un peu de javascript. Vous pouvez tronquer et laisser le nombre de caractères que vous voulez 60,50,30 etc.

9 sujets de 1 à 9 (sur un total de 9)
  • Vous devez être connecté pour répondre à ce sujet.