web-dev-qa-db-fra.com

Impossible de se connecter à l'administrateur Magento

J'ai installé magento dans un sous-répertoire. www.domaine.com/subdir/magento

Ce site a parfaitement fonctionné à un moment donné. Je n'ai rien changé jusqu'à ce que mon client me dise qu'il ne pouvait pas se connecter à magento admin.

Je me suis connecté très bien à partir de mon ordinateur, mais sur son ordinateur, il a simplement été redirigé vers l'identifiant de l'administrateur magento sans message d'erreur ni adresse URL ressemblant à ceci: 

http://domain.com/subdir/magento/index.php/admin/index/index/key/3097210b826ac4a86d7531cb4089c9d0/

Je pensais que ses cookies étaient bloqués, mais ce n'était pas le cas. 

Mes paramètres magento étaient sécurisés/non sécurisés. Baseurl: http://domain.com/subdir/magento/

web cookie path: (blank)
web cookie domain: (blank)

Après avoir effacé var/cache, j'ai constaté que je ne pouvais pas me connecter à l'administrateur non plus, avec le même problème.

J'ai essayé les réglages suivants sans succès:

path: /
domain: domain.com

path: /subdir/magento
domain: vigrond.com

J'ai aussi essayé de commenter ces lignes dans Varien.php, mais cela n'a eu aucun effet non plus.

Mon compte serveur est un SMV et il dispose de beaucoup d'espace libre.

Je suis donc un peu perdue, me demandant pourquoi cela s’est produit en premier lieu alors que cela fonctionnait auparavant (n’a rien changé) et pourquoi c’est si compliqué?

Toute aide appréciée

11
Vigrond

Je n'ai jamais résolu le problème. Mais j'ai effacé l'ordinateur client et réinstallé Windows 7, et cela a fonctionné. Il était très étrange que cela n’ait pas fonctionné auparavant car il n’était pas derrière un proxy, n’avait pas d’ad ons ni de virus. Et le numéro reproduit dans chacun de ses navigateurs (Chrome firefox et IE). Ce n'était pas un problème de routeur. C’était un problème de fenêtres, mais je ne saurais vous dire exactement ce qui le causait. Ce ne sont pas non plus les paramètres de sécurité Internet, comme je les ai vérifiés. Également vérifié le fichier hôte. Comme je l'ai dit auparavant, très déroutant

1
Vigrond

Si un message d'erreur de connexion ("mot de passe invalide", etc.) n'est pas affiché, il s'agit presque toujours d'un problème de cookie de session. Utilisez la visionneuse de cookies de votre navigateur et/ou votre sniffeur de trafic HTTP préféré et vérifiez-le.

  1. Que tous les cookies ont une date d'expiration appropriée après avoir été configurés

  2. Que le cookie de session ait un nom/valeur de jeton cohérent pour chaque demande

  3. Que PHP, lors de l’exécution de Magento, dispose des différents paramètres ini de la durée de vie de la session à une valeur raisonnable

  4. Que PHP puisse écrire sur ce qu'il utilise comme support de stockage de cookies

  5. Que l'heure du serveur correspond à l'heure réelle et que PHP lui-même dispose d'un fuseau horaire

15
Alan Storm

Trouvez app/code/core/Mage/Core/Modèle/Session/Abstract/Varien.php. dans votre dossier d'installation Magento. Commentez les lignes (voir ci-dessous) 80 à 83. Le numéro de ligne peut varier.

    // set session cookie params
    session_set_cookie_params(
        $this->getCookie()->getLifetime(),
        $this->getCookie()->getPath()//,
        //dependes which versin of mage you are using, you may comment these as well
        //$this->getCookie()->getDomain(),
        //$this->getCookie()->isSecure(),
        //$this->getCookie()->getHttponly()
    );

C'est un problème de mise en cache. La communauté de Magento a récemment confirmé qu'elle est triée, mais ce n'est pas le cas. :)

Il suffit de vider votre cache et de suivre cette procédure, elle devrait quand même fonctionner.

Commentez également ces lignes

//        if (!$cookieParams['httponly']) {
//            unset($cookieParams['httponly']);
//            if (!$cookieParams['secure']) {
//                unset($cookieParams['secure']);
//                if (!$cookieParams['domain']) {
//                    unset($cookieParams['domain']);
//                }
//            }
//        }
//
//        if (isset($cookieParams['domain'])) {
//            $cookieParams['domain'] = $cookie->getDomain();
//        }
  • Assurez-vous que les cookies sont activés dans votre navigateur. Essayez plusieurs navigateurs , Y compris Safari ou Opera. Chrome posera des problèmes Il ne faut pas oublier d'effacer le cache dans Chrome après Apporter des modifications!

  • Assurez-vous que les autorisations de fichier sont définies sur EVERYONE - FULL CONTROL pour Windows et 777 pour votre environnement Mac/Linux. Si tout cela ne fonctionne toujours pas, vous pouvez essayer ceci: (Je ne recommande pas cette solution pour une version de production de Magento, mais pour votre environnement de test local cela fonctionnera.)

  • Vérifiez la version de php que vous utilisez. Si vous utilisez une version récente de Magento, essayez de trouver la version de PHP et les extensions requises.

Plus de détails

11
Fury

Avez-vous effacé le stockage de session dans le répertoire var?

Dans mon cas, lorsque je jouais avec une autorisation pour plusieurs magasins sur des sous-domaines (le chemin et le domaine du cookie ont été modifiés comme vous l'avez fait), cette méthode m'a aidé à supprimer le "mauvais" cookie et à m'être connecté avec succès:

Dans apppath/var/session directory, j'ai créé une commande dans Shell (attention au chemin, cela pourrait supprimer tous les fichiers du répertoire)

rm -rf /path/to/magento/var/session/*

Et puis, nettoyez simplement le cookie pour le domaine dans le navigateur.

4
Vasiliy Toporov

Je me battais avec ce problème aujourd'hui sur mon serveur local. Je n'ai pas pu me connecter avec aucun navigateur. Je ne voulais vraiment pas commenter les lignes des fichiers de base ou faire toute autre solution "sale". 

Tout d'abord, j'ai vérifié les cookies définis par le navigateur. Son expiration était fixée à 1970, donc il s'agissait clairement d'un problème de cookies. 

J'ai vérifié les valeurs pour les cookies dans la base de données magento. Dans phpmyadmin, j'ai trouvé la table core_config_data , puis les champs avec les valeurs: web/cookie/cookie_domain et web/cookie/cookie_path . Ils étaient tous les deux vides. 

Ma solution était de définir:

web/cookie/cookie_domain à mon nom de domaine 

et 

web/cookie/cookie_path à /. 

Exemple:

votre domaine sur lequel vous exécutez magento est magento.local set:

web/cookie/cookie_domain = magento.local

et

web/cookie/cookie_path =/

1
Protazy

Supprimez les cookies (liés à votre domaine) des paramètres de votre navigateur.

0
Hamid Parchami

En outre, vous pouvez mettre à jour le mot de passe dans la base de données si tout ce qui précède ne fonctionnait pas et si vous avez besoin d'un accès urgent:

UPDATE admin_user SET password=CONCAT(MD5('qXpassword'), ':qX') WHERE username=‘user’;

remplacez les mots d’utilisateur et de mot de passe en fonction de vos besoins.

0
Claudiu Creanga

J'ai eu le même problème, mais je travaillais surXAMPPsur windows 7 x64 .

Dans Magento, système - configuration - Web - Gestion de la gestion des cookies de session Utiliser HTTP uniquement en no et Durée de vie des cookies en 86400.

J'ai seulement changé la durée de vie des cookies, juste en cas de passage à l'heure d'été.

Avant les modifications, je ne pouvais me connecter qu'avec Firefox et après les modifications, tous les navigateurs fonctionnent.

Quitter Chemin du cookie et Domaine du cookie vide.

0
rick rock

Vérifiez les configurations de cookies dans core_config_data table et vérifiez si votre session est en cours de sauvegarde sur db. Dans mon cas, quelqu'un a simplement changé le domaine de cookie et le chemin du cookie avec une valeur incorrecte.

Vous pouvez également vérifier cela sur le nœud de votre application/etc/local.xml . Si c'est sur db, vous devriez peut-être changer do files pour pouvoir nettoyer les données de session directement sur var/session .

0
Ricardo Martins

Je faisais face au même problème et à la fin, j’ai trouvé que c’était dû à un espace disque insuffisant et que, pour cette raison, Magento n’était pas en mesure de créer un fichier de session dans le dossier var var/session. Après le nettoyage des fichiers journaux, le problème a été résolu.

0
mubashir

Si rien ne fonctionne, assurez-vous que le quota de disque n'est pas dépassé. Les nouveaux cookies de session créés sous ./var/session auront une longueur de zéro octet si le quota de disque de l'utilisateur est dépassé.

0
Seff