Magento 1.9 Impossible de se connecter au panneau d'administration!


99

J'ai installé Magento 1.9 . Cela fonctionnait bien pendant une semaine. Soudainement hier, lorsque j'ai essayé de me connecter au panneau d'administration Magento et que j'ai tapé usernameet passwordcliqué sur le bouton Connexion, rien ne s'est passé. La page se rafraîchit et c'est tout. Aucune erreur ni aucun autre message.

Si j'ai entré un nom d'utilisateur ou un mot de passe incorrect, l'erreur est indiquée.

Après avoir cherché sur ce sujet dans Google, on m'a recommandé de commenter les lignes suivantes:

app \ code \ core \ Mage \ Core \ Modèle \ Session \ Abstract \ Varien.php

/* to solve login issue */
  /*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();*/ //I have commented these lines

Et pour certaines versions plus anciennes ci-dessous a été recommenté dans le même fichier.

$cookieParams = array(           
    'lifetime' => $cookie->getLifetime(),           
    'path'     => $cookie->getPath(),           
    //'domain'   => $cookie->getConfigDomain()           
    //'secure'   => $cookie->isSecure(),           
    //'httponly' => $cookie->getHttponly()       
);
  }*/

Même après cela, je ne pouvais plus me connecter à admin. C'est comme ça. Quelqu'un a affronté ce problème? Existe-t-il une autre solution à ce problème?

(J'ai essayé de vider le cache et la session via ftp).


Pourriez-vous vider le cache / le cookie du navigateur et réessayer?
Alamelu

Copiez les fichiers de base sur app/code/local/Mage/Core..blahblahpour les éditer afin que Magento remplace le fichier de base. Également utiliser git pour le contrôle de version, c'est une aubaine.
Chris K


1
Si vous utilisez Chrome, appuyez sur la touche F12> Ressources> Cookies> Cliquez avec le bouton droit de la souris sur votre domaine> Effacer.
rybo111

Réponses:


122

Arrêtez de modifier le code principal de cette manière - cela peut résoudre temporairement un problème, mais peut créer des problèmes futurs qu'il sera presque impossible de dépister.

Plusieurs problèmes différents sont à l' origine du comportement de connexion sans erreur de l'administrateur que vous constatez, mais ils sont tous liés au fait que Magento n'est pas en mesure de définir ou de lire le cookie de session. Magento utilise des sessions pour transmettre des messages d'erreur entre les pages. C'est pourquoi vous ne voyez pas de message d'erreur. Magento utilise également des sessions pour stocker la valeur "est connecté", aussi le fait de ne pas définir de session entraîne également le comportement d'erreur fondamentale.

Les causes possibles incluent

  • Non concordance entre l'heure de l'ordinateur local et l'heure du serveur, ce qui entraîne l'invalidation instantanée du cookie. Assurez-vous que l'heure de votre serveur est correcte.

  • Autorisations incorrectes sur var/session, empêchant l'enregistrement des fichiers de session

  • Configuration incorrecte de la base de données / redis / autre stockage de session, empêchant l'enregistrement des valeurs de session

  • Un module instancie les sessions trop tôt , ce qui empêche de définir les noms de session corrects.

  • Vous êtes un développeur utilisant plusieurs URL et possédez plusieurs domaines de cookie.

  • Un autre développeur a en quelque sorte modifié app\code\core\Mage\Core\Model\Session\Abstract\Varien.php, créant un bogue difficile à détecter

  • Le domaine de cookie en System -> Configuration -> Web -> Session Cookie Managementne correspond pas au domaine de site actuel.

  • Vous utilisez le domaine en localhosttant que votre serveur et utilisez une version de webkit présentant des problèmes / problèmes de configuration des cookies localhostdans certaines situations.

La solution à court terme consiste simplement à supprimer votre cookie pour le domaine. C'est souvent suffisant pour résoudre le problème. Si le problème persiste, déterminez laquelle des raisons ci-dessus est la raison de votre erreur et prenez des mesures pour y remédier (autorisations de réparation, etc.).


7
Vous pouvez utiliser la commande sys: check de n98-magerun pour rechercher les problèmes liés au domaine de cookie et à l'URL de base. magerun.net/quick-tip-find-login-issues-with-syscheck-command
cmuench

1
@Alan Storm, merci pour l'explication claire. J'ai résolu mon problème. Dans mon cas, le motif du problème est le troisième.
SIBHI S

4
Dans mon cas, il n'y avait pas assez d'espace disque sur le serveur. Donc, vous voudrez peut-être ajouter ceci comme cause possible.
Simon

@cmuench J'exécute cette commande et je ne comprends pas les résultats: Magasin non sécurisé non sécurisé non sécurisé: valeur par défaut Nom d'hôte incorrect configuré. Le nom d'hôte doit contenir un point Store Invalid Unsurure BaseURL Store: français Nom d'hôte incorrect configuré. Le nom d'hôte doit contenir un point. Store Stockage Base non sécurisé non sécurisé non valide: sot_eng. Nom d'hôte incorrect configuré. Le nom d'hôte doit contenir un point Store Stockage de BaseURL non sécurisé non valide: sot_fra Nom d'hôte incorrect configuré. Le nom d'hôte doit contenir un point ✔ Domaine de cookie (sécurisé) de la boutique: valeur par défaut OK - Aucun domaine défini Tous les domaines de cookie ont le même aspect Ok et Aucun domaine défini
Denisa

@ Denisa Vous aurez un peu plus de chance si vous essayez de poser cette nouvelle question.
Alan Storm

33

Je rencontre les mêmes symptômes sur certaines installations de Magento (pas seulement 1.9). Dans mon cas, cela ne se produit que dans Chrome. Je résous ce problème en me connectant à Firefox / Safari / Opera et en modifiant l'option "Utiliser HTTP uniquement" en "Non" dans "Gestion des cookies de session" des paramètres "Web".

Voir la capture d'écran de l'arrière-plan de Magento avec les paramètres de cookies


3
Cela m'a aidé à faire fonctionner mon environnement de développement dans Chrome, mais n'oubliez pas de ne pas utiliser ces paramètres en production, car cela ouvre toute une classe de vulnérabilités en matière de sécurité.
Stephen Crosby

Où se trouve la section Gestion des cookies de session?
Aryeh Armon

1
Vérifiez également votre domaine de cookie - je développais localement et cela s'est avéré être mon problème.
Phil Birnie

M'a beaucoup aidé! Jamais su que cela ne se produit que dans Chrome. Haha!
Jehzlau

4
Pour régler Use HTTP onlyà Nosans accès au panneau d'administration. Vous pouvez lancer directement cette requête SQL: UPDATE __DATABASE_NAME__. core_config_dataSET value= '0' OÙ core_config_data. path= 'web / cookie / cookie_httponly';
Nolwennig

11

J'ai eu ce problème également. Les sessions avérées ne peuvent pas être écrites var/session, même si le répertoire lui-même est défini sur 0777. Magento a créé des fichiers de session, mais ils sont tous restés à zéro octet.

Changer le stockage de session de filespour dbrésoudre le problème pour moi.


cela marche! Je ne comprends pas pourquoi Magento n'écrit pas les sessions et le cache sur les fichiers. Les permissions sont correctes!
Michelangelo

Si je me souviens bien de ma situation, c'était soit que le disque était plein, soit que le répertoire de la session contenait trop de fichiers.
Giel Berkers

Celui-ci fonctionne pour moi !!
Ner

Dans mon cas: problème de modification du stockage de session de la base de données en fichiers.
akgola

7
  1. Ouvrez votre répertoire d'installation Magento. Localisez et ouvrez le fichier index.php.
  2. Rechercher error_reporting (E_ALL | E_STRICT); code.
  3. Commentez comme ça:

    /*error_reporting(E_ALL | E_STRICT);*/

  4. Et utilisez plutôt le code suivant:

    error_reporting(E_ALL);

    $_SERVER['MAGE_IS_DEVELOPER_MODE'] = true;

  5. Décommentez-le en supprimant le signe #, il a donc l'aspect suivant:

    ini_set('display_errors', 1);

  6. Enregistrez ce fichier et téléchargez-le sur le serveur. Rechargez votre page Web pour voir les erreurs.


6

Une autre raison possible: le disque dur / volume / quota est saturé et les données de session ne peuvent donc pas être écrites sur le disque. Cela peut sembler peu probable, mais cela m'est arrivé une deuxième fois et j'ai mis du temps à comprendre.

Je n'ai pas assez de réputation pour commenter, mais @ Alan Storm, vous voudrez peut-être inclure cela dans votre excellente liste.


6

J'ai récemment eu le même problème et simple astuce a fonctionné pour moi. Il s’agit également des personnes qui ne peuvent pas accéder au tableau de bord sur Google Chrome . Si vous pouvez travailler sur Mozilla Firefox, veuillez le faire car je suppose que ce problème n’est pas persistant sur Mozilla Firefox.

La solution pour le chrome est donc:

Aller sur Système-> Configuration-> Web . Développez l' onglet Unsecure and Secure . Modifiez l'URL de base en http://127.0.0.1/[Your folder name]si vous utilisez localhost ou modifiez-la en l'URL de votre site par laquelle vous accédez à l'interface. J'ai dû me connecter deux fois pour accéder au tableau de bord, car lorsque j'ai entré les détails pour la première fois, il est simplement actualisé et revient à la même page que celle que vous avez décrite en tant que boucle.


5

Ouvrez votre phpMyAdmin depuis votre hôte essayez une fois cette commande SQL.

Exécutez ce SQL:

SET FOREIGN_KEY_CHECKS=0;
UPDATE core_store SET store_id = 0 WHERE code='admin';
UPDATE core_store_group SET group_id = 0 WHERE name='Default';
UPDATE core_website SET website_id = 0 WHERE code='admin';
UPDATE customer_group SET customer_group_id = 0 WHERE customer_group_code='NOT LOGGED IN';SET FOREIGN_KEY_CHECKS=1;

Maintenant, l’administrateur peut se connecter.

Veuillez suivre ceci:

La page Admin montre 404 pages non trouvées


1
n'oubliez pas d'ouvrir la fenêtre anonyme ou un autre navigateur pour la suppression de sessions
Martin

3

J'ai eu le même problème et je l'ai résolu en supprimant tous les fichiers de / var / session. Je pense que c'est parce qu'il y a trop de sessions dans Magento!


3

La liste des tempêtes d’alarme est correcte et détaillée. Voici quelques cas supplémentaires.

  1. En vagant, vérifiez également l’autorisation de la var/sessionmachine hôte
    (problèmes de montage)
  2. Vérifiez si votre disque est plein ou s'il y a trop de fichiers dans var / session
  3. Exécuter n98-magerun.phar sys:check(problèmes rencontrés, y compris domaine du cookie)
  4. Changez de session en base de données en modifiant le fichier local.xml. Il éliminera la plupart des problèmes de permission en utilisant insidie<global>

    <session_save><![CDATA[db]]></session_save>

Faites également varier les extensions tierces (extensions de pare-feu / de sécurité), par exemple https://github.com/paimpozhil/MageFirewall/blob/master/app/code/community/MageFirewall/Firewall/Model/Observer.php#L53 vous met sur la liste noire si vous essayez trop de fois.

Peut se produire si votre session ne fonctionnait pas à l'origine pour des problèmes d'autorisation, mais continue ensuite à échouer même après avoir résolu le problème d'origine

Dans votre cas particulier, gardez un œil sur l' admin_session_user_login_successévénement car la plupart des modules de sécurité / pare-feu utilisent cet événement. Surveillez spécialement si la variable $_SESSION['admin']est réinitialisée par les observateurs


2

Il est également important d'avoir une clé de formulaire présente, sinon votre formulaire ne sera pas traité.

<?php echo $this->getBlockHtml('formkey'); ?>

2

Une solution simple à ce problème consiste à utiliser http://127.0.0.1 comme nom d’hôte au lieu de localhost.

Le problème étant que vous ne pouvez pas vous connecter à votre administrateur, vous devez modifier les URL de base sécurisées et non sécurisées dans la base de données tabel: core_config_data.

Cela permettra également à votre baseurl de valider avec le système de n98-magerun: check


2

Si vous développez localhostet avez défini ou modifié votre nom de domaine sur localhost, mettez à jour les core_config_datanoms de domaine de votre table de base de données sur 127.0.0.1. Par exempleUPDATE core_config_data SET value="http://127.0.0.1/magento/" WHERE path="web/unsecure/base_url";


2

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.


2

Tout d’abord, essayez de vider le cache et, si cela ne fonctionne pas, essayez de créer chmod 700 dans votre dossier var.


1

Vous pouvez changer votre navigateur peut être ce travail pour moi. Lorsque cette erreur survient, j’ai changé le navigateur Chrome pour Firefox et le fonctionne.


0

La même chose s’est produite avec moi il ya quelque temps et mon problème vient de la session. Je n'avais pas assez d' espace disque pour créer les sessions et la mémoire cache var/. J'ai enlevé des trucs et tout a fonctionné après. Cela aidera peut-être quelqu'un.

À votre santé


0

Essayez de vider votre cache en vidant les dossiers "var / cache" et "var / session", cela a résolu le problème.

J'ai également dû redémarrer le serveur Web après l'avoir fait une fois.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.