presentation tuto mot de passe
Accueil » Conseils & tutoriels sites internet » Tutos Prestashop » Prestashop : Modifier son mot de passe avec phpMyAdmin

Prestashop : Modifier son mot de passe avec phpMyAdmin

Mot de passe d’admin Prestashop égaré ? Impossible de vous connecter au panneau d’administration suite à une mise à jour majeure ou à une migration?

Parce qu’on a tous un jour eu un trou de mémoire…

Voici donc, de deux manières différentes, comment récupérer facilement l’accès à la configuration de votre boutique Prestashop.

La méthode par base de données (PhpMyAdmin)

1. Se connecter au FTP et récupérer la cookie_key

La première étape sera de se connecter à votre serveur via FTP afin de récupérer la valeur de la constante “_COOKIE_KEY_” dans le fichier ‘/config/settings.inc.php’ .

Sous Prestashop 1.7, cette constante se trouve dans ‘/app/config’.

La cookie key pour votre admin Prestashop

Munissez-vous donc du nom de votre hôte, du couple identifiant et mot de passe notez bien cette cookie key. Sachez donc que c’est elle en bonne partie qui sécurise les mots de passe de tous les utilisateurs de votre site Prestashop, il est donc extrêmement important de ne pas la modifier, sans quoi plus aucun mot de passe ne fonctionnera. Cette cookie key est également très importante en cas de refonte ou de mise à jour de votre site Prestashop.

Il est au passage intéressant de noter que le fichier ci-dessus liste ce qu’on appelle des constantes en PHP, à savoir des codes récurrents sur un site basé sur cette technologie. “_COOKIE_KEY_” est ce qu’on appelle une constante, définie par “define”.

2. Se connecter à phpmyadmin

Une fois la constante _COOKIE_KEY_ sous la main, se connecter à phpMyAdmin en utilisant le bon identifiant et le bon mot de passe, que l’on peut retrouver à l’étape 1.

Dans notre exemple, nous serons en train de travailler en local, donc sur un simple ordinateur, ceci dit la procédure demeure la même sur un serveur distant.

Pensez juste que l’accès à la base de données de votre site dépend de votre hébergeur. Certains la laissent accessible directement depuis une URL, d’autres préfèrent la verrouiller et demandent à ce que vous soyez connecté à votre panel client (comme nous le demandons également, par mesure de sécurité).

Attention encore une fois aux manipulations que vous effectuez dans PhpMyAdmin, il est judicieux de toujours sauvegarder au préalable (et cliquez ici pour savoir comment sauvegarder un site distant sur votre ordinateur, je n’en parlerai jamais assez 🙂 )

3. Sélectionner la base de donnée

Selectionner ensuite la base de donnée du PrestaShop. Pensez à bien vérifier lors de l’étape 1 quel est le nom de votre base de données, sans quoi vous risquez de modifier un mot de passe pour un autre site (ce qui serait fort dommage, la cookie key étant unique à chaque site, ce qui rendrait inutile votre modification en conséquent). Une autre constante (“_DB_NAME_”) définit le nom de la base de données, servez-vous en.

Allons dans la base de données retrouver l'admin

Techniquement, c’est une fois votre base de données sélectionnée que vous devriez d’emblée la sauvegarder, ou si vous préférez ne pas tout récupérer, sauvegardez uniquement la table sur laquelle nous allons travailler.

4. Afficher la table ps_employee

Cherchez la table ps_employee et cliquez sur modifier (edit) pour le compte utilisateur visé.

Le préfixe des tables idéalement doit être différent de ps_, mais si vous ne l’avez pas changé, surtout ne le faites pas en production, quelques étapes sont requises au préalable et vous risqueriez de couper l’accès de votre site à sa base de données. Pensez juste à chaque installation à bien changer le préfixe des tables de Prestashop (qui par défaut est donc ps_) 

Les employés admin Prestashop

5. Modifier le mot de passe

Sur la colonne “passwd”, utiliser la méthode d’insertion “MD5”, coller la constante _COOKIE_KEY_ suivie directement du nouveau mot de passe.

Le MD5 (pour votre information) est une méthode de hashage permettant de sécuriser les données renseignées dans une base de données MySQL. Couplé avec la cookie key, autant vous dire qu’il n’est pas possible de “hacker” cela. Dans le cas présent, il s’agit en réalité d’une réinitialisation en tenant compte du fait que vous avez des accès illimités aux données (et donc un FTP et la base de données MySQL).

Le mot de passe d'un admin Prestashop

Pour finir, appliquer la modification, le bouton “Exécuter” vous servira à envoyer la requête.

Quoi qu’il se produise, vous devez être capable de revenir en arrière. Bien évidemment, sur une telle modification, vous serez en mesure de changer à nouveau le mot de passe, mais méfiez-vous des modifications directes en base de données, qui devraient être réalisées en pleine connaissance de cause et par une personne compétente en la matière.

Et voilà !

La méthode par FTP

Puisque vous disposez d’accès FTP, autant s’en servir !

Rendez-vous dans le fichier /controllers/admin/AdminLoginController.php. Ce fichier gère sous Prestashop l’interface de connexion admin, nous allons simplement créer un compte au chargement de la page.

Repérez la fonction public function initContent() et ajoutez ceci dedans, en tout premier :

$employee = new Employee();
$employee->firstname = 'Prénom';
$employee->lastname = 'Nom';
$employee->id_lang = 1;
$employee->id_profile = 1;
$employee->passwd = md5(_COOKIE_KEY_ . 'motdepasse');
$employee->email = 'moi@domain.tld';
$employee->active = 1;
$employee->save();

Ce qui, dans le cadre d’un Prestashop 1.7, nous donne donc ceci en début de méthode :

    public function initContent()
    {
        $employee = new Employee();
        $employee->firstname = 'Prénom';
        $employee->lastname = 'Nom';
        $employee->id_lang = 1;
        $employee->id_profile = 1;
        $employee->passwd = md5(_COOKIE_KEY_ . 'monmotdepasse');
        $employee->email = 'moi@domain.tld';
        $employee->active = 1;
        $employee->save();
        if (!Tools::usingSecureMode() && Configuration::get('PS_SSL_ENABLED')) {

La suite de la méthode gérant l’initialisation de la page (n’y touchez pas, au risque de retourner une erreur 500). Il est à noter que ce code, sur la majorité des controllers, permet de créer un compte via le code, à partir du moment où le controller est déclenché. Ne laissez jamais un tel code traîner sur votre site (surtout que s’il est déclenché deux fois, celui-ci vous retournera une erreur, le compte admin existant déjà).

Rechargez la page admin, le compte est créé. Vous pouvez à présent vous connecter et retirer ce code. Modifiez le mot de passe oublié sur l’autre compte, et veillez bien à supprimer le compte créé (tout comme les lignes de code insérées). Les nouveaux codes d’accès, au cas où vous ne l’auriez pas deviné, sont :

  • moi@domain.tld en identifiant
  • monmotdepasse en mot de passe

En espérant que ce tuto pourra vous être utile et que vous en ferez bon usage, n’hésitez pas à consulter la documentation officielle des administrateurs Prestashop !

Imprimer Imprimer

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.