"Clé de formulaire invalide. veuillez rafraîchir la page "- impossible de se connecter au panneau d'administration

18

Je visite régulièrement mon site pour m'assurer qu'il fonctionne et j'ai remarqué que les images des produits n'apparaissaient pas, pensant que c'était un problème avec le cache d'indexation.J'ai essayé de me connecter au panneau d'administration et j'ai reçu l'erreur:

"clé de formulaire non valide. veuillez actualiser la page"

ou

D'autres symptômes sont que les clients ne pouvaient pas ajouter de produits au panier et que les performances étaient extrêmement lentes.

Il n'y a aucune erreur dans les journaux (/ var / logs)

Quelles étapes supplémentaires dois-je effectuer pour résoudre ce problème?

SR_Magento
la source

Réponses:

48

Cela se produit également si le domaine des cookies dans Système> Configuration> Web> Cookies est différent du domaine de site réel.

Pour supprimer le paramètre sans accéder au panneau d'administration:

  1. utilisez la requête SQL suivante sur la console MySQL ou dans un client comme phpMyAdmin:

    DELETE FROM core_config_data WHERE path='web/cookie/cookie_domain';
  2. vider le cache. Si vous utilisez le backend de cache basé sur un fichier par défaut, supprimez tous les répertoires ci-dessous var/cache.

Ensuite, dès que vous pouvez vous reconnecter, définissez le domaine de cookie correct pour chaque site Web ou magasin (exemple: .example.compar exemple.com, www.example.com et tous les autres sous-domaines)

Si vous utilisez n98-magerun (et vous devriez!), La même chose peut être accomplie avec:

n98-magerun config:delete web/cookie/cookie_domain
n98-magerun cache:clean config
Fabian Schmengler
la source
Bonjour @fschmengler, veuillez ajouter plus de détails sur la façon de vérifier ce paramètre à partir de phpmyadmin, car l'utilisateur n'est pas en mesure de se connecter au panneau d'administration et certains développeurs qui sont nouveaux dans le développement Magento ne savent pas où vérifier ces paramètres dans la base de données. Désolé, mais juste pour l'aide des nouveaux membres :)
Mohit Kumar Arora
@MohitKumarArora vous avez raison, j'ai mis à jour la réponse
Fabian Schmengler
Maintenant, j'ai voté positivement. :)
Mohit Kumar Arora
n98 fonctionne de manière fantastique. Merci pour l'info.
andy jones
@FabianSchmengler, j'ai vérifié le core_config_data et c'est la valeur correcte pour mon site. Dois-je toujours suivre toutes les étapes que vous avez fournies? Votre approche fonctionnerait-elle toujours dans ce cas?
datasn.io
18

Je poste la question / réponse parce que je n'ai rien trouvé de pertinent.

Le problème était que le lecteur sur lequel réside mon installation de magento était plein. J'ai libéré de la place, effacé / var / session et / var / cache et tout est revenu à la normale.

SR_Magento
la source
1
Avertissement: la suppression var/sessiondéconnectera tout le monde et effacera tous les paniers invités. Voir ici pour une solution qui ne supprime que les anciennes sessions: magento.stackexchange.com/a/58167/243
Fabian Schmengler
@fschmengler oui mais voulez-vous vraiment tenter votre chance avec des sessions qui n'ont pas été correctement créées au départ? Lorsque j'ai vérifié la / var / session, il y avait toutes sortes de fichiers de 0 Ko, ce qui n'est pas normal.
SR_Magento
1
Absolument une première chose à vérifier. Je me suis penché dessus pendant des heures. Merci!
Bryant Jackson
Pour moi, c'était de l'espace disque. J'ai découvert après avoir essayé de git pull, car il a échoué avec une erreur liée à l'espace disque.
Damodar Bashyal
@SR_Magento Monsieur, j'ai été supprimé du dossier de cache et du dossier de session tant de fois que cela ne fonctionne que pendant un certain temps après un certain temps, il y a le même problème
Amaresh Tiwari
3

Il existe 3 solutions:

  1. Utilisez ces commandes dans phpmyadmin

    SUPPRIMER DE core_config_data WHERE path = 'web / cookie / cookie_domain';

    SUPPRIMER DE core_config_data WHERE path = 'web / cookie / cookie_path';

Essayez maintenant de vous connecter.

2. Supprimez tout dans le dossier var, puis vérifiez si cela fonctionne.

3.Remplacez le fichier .htaccess par un exemple de fichier .htaccess, puis essayez de vous connecter à l'administrateur.

J'espère que cela vous aidera.

Lokranjan
la source
1

Un autre problème possible, quelque peu évident, à vérifier en premier: si votre site utilise SSL, assurez-vous que vous n'utilisez pas le protocole http pour votre page d'administration; vous devez utiliser https . par exemple https://example.com/admin

voxoid
la source
1

Dans mon cas, le problème semble être dû au fait que j'ai créé l'utilisateur admin à l'aide de n98-magerun avec un utilisateur qui ne peut pas écrire sur magentofolder / var et que j'ai utilisé le dossier de secours / tmp / magento à la place.

Je viens de supprimer mon utilisateur administrateur et d'exécuter un sudo -iu OTHERUSER(utilisateur propriétaire du dossier magento) et n98-magerun admin:user:createj'ai exécuté à nouveau pour créer mon utilisateur.


MISE À JOUR: Dans un autre cas, l'url d'administration a été visitée sans www. la syntaxe et les paramètres des cookies utilisaient www. Il suffit de mettre le www. dans l'url d'administration a résolu le problème. ;)

Ricardo Martins
la source
Cela ne devrait-il pas être admin:user:create?
sr9yar
1
@ sr9yar nope - c'est Magento2 - c'est M1
treyBake
0

Parallèlement à l'étape ci-dessus d'effacement du cache, j'ai également dû suivre l'article ci-dessous et définir les informations de données de session dans le bon chemin en suivant les étapes ci-dessous

Réf article

/programming/26123081/failed-to-write-session-data-magento

Je l'ai corrigé en changeant le session.save_path pour le placer dans la VM.

Modifiez le fichier app / etc / local.xml

remplacé par ci-dessous

Puis cela a commencé à fonctionner. Parfois aussi, vous ne pouvez pas vraiment dire le problème, il est donc important d'activer la journalisation des erreurs. Activez ceci en vous référant à l'article suivant

https://www.thecreativedev.com/how-to-enable-system-log-and-errorswarning-in-magento/

Abhishek Chowla
la source
0

Effacez les cookies et le cache. Ouvrez le panneau d'administration en mode navigation privée.

Abdul Rafay
la source
-3

Ce problème connu survient généralement après l'application du correctif SUPEE-7405 inclus dans la version Magento 1.9.2.3. Il peut être résolu en ajoutant le code ci-dessous dans le fichier - app / code / local / Mage / Core / Model / Session.php

public function validateFormKey()
{
    if (!($formKey = $_REQUEST['form_key']) || $formKey != $this->getFormKey()) {
        return false;
    }
    return true;
}

Ce fichier peut ne pas exister dans votre référentiel, copiez-le app/code/core/Mage/Core/Model/Session.phpet collez-le app/code/local/Mage/Core/Model/Session.phpaprès la fonction d'ajout ci-dessus dans le fichier car il peut être manquant dans le fichier core.

Videz également le cache de votre navigateur et les cookies. Effacez tous les fichiers dans Magento var/cacheet le var/sessioncontenu des dossiers. Connectez-vous ensuite à votre panneau d'administration.

InfoBeans
la source
Ermm..ne serait pas une meilleure solution pour ajouter la sortie du bloc de clé de formulaire au modèle adminhtml remplacé? (De cette façon, la protection CSRF fonctionnera comme prévu).
Luke A. Leber
2
Il ne faut jamais éditer les fichiers core.
Max