Jump to content

Impossible de créer un compte Prestashop 1.7.5


Ciavattella

Recommended Posts

Bonjour,

Lors de la création du compte par le client, une fenêtre Erreur 500 s'affiche pour lui, et à la vérification, je constate qu'il s'agit d'un problème de longueur de mot de passe, en tous cas, le message suivant est affiché : La longueur du champ Customer->passwd est actuellement 60 caractères. Il doit être entre 0 et 32 caractères. at line 984 in file classes/ObjectModel.php.

Je butte depuis plusieurs jours sur ce problème que je ne parviens pas à résoudre. Quelqu'un peut-il m'aider ? Merci beaucoup pour votre contribution.

Noël

Link to comment
Share on other sites

Merci pour votre retour.

La migration fût en effet de 1.6.4 à 1.7.5 exactement mais pas manuellement, uniquement via le «one click upgrade» de Prestashop et leurs instructions relatives à cette migration, des modules uniquement de Prestashop ou recommandés, aucun autre module en dehors, et d'ailleurs, tout s'est très bien passé. Il n'y a aucun override excepté celui de ContactController en Front, rien en Customer.

Merci encore de poursuivre votre suivi.

Noël

  • Like 1
Link to comment
Share on other sites

Bah ce n'est pas possible, la classe customer est définie comme suit en 1.7:

image.thumb.png.4b11f7e00aa95ded0739d29e73998b4e.png

 

Et dans l'upgrade de la 1.7.5:

ALTER TABLE `PREFIX_customer`
  CHANGE `company` `company` VARCHAR(255),
  CHANGE `email` `email` VARCHAR(255) NOT NULL,
  CHANGE `passwd` `passwd` VARCHAR(255) NOT NULL;

 

Link to comment
Share on other sites

Oui la mise à jour 1.7.0.0 change la longueur du schéma:

upgrade/sql/1.7.0.0.sql:ALTER TABLE `PREFIX_customer` CHANGE COLUMN `passwd` `passwd` varchar(60) NOT NULL;
upgrade/sql/1.7.0.0.sql:ALTER TABLE `PREFIX_employee` CHANGE COLUMN `passwd` `passwd` varchar(60) NOT NULL;

Oui, 2 fois de suite au cas ou ta base de données soit têtue 🙃

Link to comment
Share on other sites

Ces longueur de schema passwd à 60 c''est ce que j'avais d'origine que j'ai modifié à 128, en modifiant la classe Customer à la même longueur.

Cela n'apporte aucune solution malheureusement et j'obtiens cette capture d'écran en  mode debug lorsque je fais un test d'une inscription pour un nouveau compte client 

18039117_Capturedcran2019-06-2412_45_54.thumb.png.6e8374b260ff335f6f825edfc9a2b0ca.png

Link to comment
Share on other sites

Vous avez du faire une belle soupe avec votre migration...

    /**
     * Check if hashed password is valid
     * PrestaShop supports both MD5 and `PASSWORD_BCRYPT` (PHP API)
     * The lengths are 32 (MD5) or 60 (`PASSWORD_BCRYPT`)
     * Anything else is invalid.
     *
     * @param string $hashedPasswd Password to validate
     * @param int $size
     *
     * @return bool Indicates whether the given string is a valid hashed password
     *
     * @since 1.7.0
     */
    public static function isHashedPassword($hashedPasswd)
    {
        return Tools::strlen($hashedPasswd) == 32 || Tools::strlen($hashedPasswd) == 60;
    }

Donc en gros vous contrôlez à l'ancienne en md5 mais avec des fichiers qui envoient en bcrypt...

Link to comment
Share on other sites

Alors là, si vous parlez de «soupe», il faudra le dire à Prestashop (j'aimerais d'ailleurs que TTOINE du team Prestashop réponde à ce propos), car ma migration de 1.6.4 à 1.7.5 s'est passée sans problème, sans «bidouille», selon le process, en gros, comme suit :

  1. test de compatibilité
  2. sauvegarde des fichiers et bd
  3. mise en maintenance
  4. désactivation des modules (pas désinstallation)
  5. action sur "one click upgrade" en module
  6. processus de migration sans faille (interruption aucune, etc) via le «one click upgrade»
  7. configuration et activation des modules origine Prestashop ou/et recommandés
  8. importation de tous les médias (images, logos, etc)
  9. et voilà, «l'affaire est dans le sac», nickel
  10. tests de l'ensemble du site, y compris ouverture de nouveaux comptes clients qui a fonctionné ! mais oui oui (qui fonctionne par intermittence ! bizarrement !) encore maintenant !

Donc, s'il s'agit d'un problème de mode de cryptage des mots de passe, je sais qu'ils l'ont changé, et je peux comprendre, cela devrait au moins figurer dans une marche à suivre pour s'en conformer, à défaut d'être pris en charge par le «one click upgrade».

La seule bidouille que j'ai faite c'est de modifier les schémas de longueur mot de passe et un override de Customer pour l'en conformer, mais je peux évidemment très vite revenir en arrière bien entendu.

Merci pour votre suivi et celui du Team Prestashop peut-être.

Noël

Link to comment
Share on other sites

Hello, c'est curieux que lors de la mise à jour, le champs n'ait pas été passé à 255 charactère. Il faudrait vérifier les droits sur les tables avec votre utilisateur Mysql configuré dans les paramètres de la boutique.

On peut voir sur votre capture d'écran que certains champs sont verrouillés (la petite clé), ce qui a pu empêcher le script de migration de changer la taille. Faites le point avec l'administrateur de votre base de données, du coup.

Link to comment
Share on other sites

  • 9 months later...
4 minutes ago, doekia said:

Si tu as le même problème, alors applique la même solution. Sinon ouvre ton topic avec un maximum d'information sur ton problème afin que l'on puisse t'assister

oui mais je ne vois pas de solution...j'avoue que mes yeux fatiguent a force de chercher, mais je vais relire le post sinon j'ai ouvert un topic sur github et j'attend la reponse, mais là je perd des clients et la situation devient critique...

merci de votre aide en tous les cas

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...