Clé de formulaire non valide. Veuillez rafraîchir la page. erreur lors de la sauvegarde du produit

14

Bonjour à tous
Je reçois cette erreur " Invalid Form Key. Please refresh the page." chaque fois que j'essaie d'enregistrer mon produit sur le panneau d'administration.
J'ai parcouru ce lien ici mais sans succès.
Quand j'ai regardé mon fichier journal, il m'a affiché ceci

2013-09-03T07:07:43+00:00 ERR (3): Notice: Undefined index: httponly  in /var/www/app/code/core/Mage/Core/Model/Session/Abstract/Varien.php on line 94
2013-09-03T07:07:43+00:00 ERR (3): Notice: Undefined index: secure  in /var/www/app/code/core/Mage/Core/Model/Session/Abstract/Varien.php on line 96
2013-09-03T07:07:43+00:00 ERR (3): Notice: Undefined index: domain  in /var/www/app/code/core/Mage/Core/Model/Session/Abstract/Varien.php on line 98

J'ai commenté les lignes du fichier comme suggéré dans cet article ici. Et les erreurs dans les fichiers journaux ont disparu. Mais toujours pas en mesure d'enregistrer mon produit et l'erreur "Clé de formulaire non valide. Veuillez actualiser la page." est comme ça.
J'ai vérifié les données du post dans Firebug et cela m'a montré

form_key    THJDhxajLIZnzrHt
form_key    {{formKey}}

sous forme de variables clés de formulaire passant lorsque j'enregistre mon produit. Lorsque je l'ai vérifié sur ma machine locale, il m'affiche

form_key    prvOwOCGjSKG6DpF
form_key    {{formKey}}
form_key    prvOwOCGjSKG6DpF

quelque chose comme ça.
Quelqu'un at-il une idée de ce qui ne va pas ici? Ici, je peux voir que la dernière valeur pour " form_key" passer en direct est " {{formkey}}" tandis qu'en local c'est " prvOwOCGjSKG6DpF". Toute aide est appréciée.

Jaimin Sutariya
la source

Réponses:

11

Il existe une autre source pour cette erreur: une erreur cookie_domaindans la configuration. Comme vous ne pouvez pas vous connecter à la zone d'administration, vous pouvez le vérifier directement via mysql:

SELECT * FROM core_config_data WHERE path LIKE '%cookie_domain%';

Vous pouvez également modifier directement la valeur dans mysql. N'oubliez pas de vider le cache par la suite.

Andreas von Studnitz
la source
4

Essayez d'abord de désactiver tous les modules personnalisés que vous avez installés et voyez si le problème persiste.

Il semble que quelque chose injecte un champ supplémentaire dans la page du produit qui entre en collision avec le paramètre form_key qui est utilisé par l'uploader de média et d'autres parties de la page d'édition du produit comme un nonce .

Roscius
la source
Bonjour Roscius, Comme vous l'avez suggéré, je pense qu'il doit y avoir un problème avec les fichiers de téléchargement de médias dans le dossier js magento. J'ai remplacé le dossier js et tout fonctionne maintenant. Merci ..
Jaimin Sutariya
2

problème avec votre fichier principal.Veuillez vérifier le chemin ci-dessous et le code.vous devez avoir commenté le code ci-dessous pour le problème de connexion à Chrome.

 app/code/core/Mage/Core/Model/Session/Abstract/Varien.php:87
// session cookie params
$cookieParams = array(
    'lifetime' => $cookie->getLifetime(),
    'path'     => $cookie->getPath(),
    'domain'   => $cookie->getConfigDomain(),
    'secure'   => $cookie->isSecure(),
    'httponly' => $cookie->getHttponly()
);

if (!$cookieParams['httponly']) {
    unset($cookieParams['httponly']);
    if (!$cookieParams['secure']) {
        unset($cookieParams['secure']);
        if (!$cookieParams['domain']) {
            unset($cookieParams['domain']);
        }
    }
}
Zaheerabbas
la source
1

Examinez de plus près votre fichier .htaccess. Lorsque je migre ma boutique Magento 1.7.0 vers un autre serveur, j'ai inclus le fichier .htaccess de l'ancien serveur, puis le message: "Clé de formulaire non valide. Veuillez actualiser la page" apparaît à l'écran et rien ne se produit, même les changements de configuration ont eu effet. La solution consistait à installer un nouveau magento, puis à copier les fichiers My Store à la racine Magento, à l'exclusion de .htaccess. Lorsque j'ai utilisé le .htaccess de la nouvelle installation, tout commence à bien fonctionner. Je ne sais pas ce qui se passe exactement, peut-être que chaque structure de serveur a des entrées et des règles différentes et particulières .htaccess. Cela fonctionne pour moi.

Paulo
la source
1

Je ne sais pas exactement quel était le problème, mais il semble avoir été le résultat des ServerNamedirectives de mon serveur Apache .

J'ai donné au serveur le même global ServerNameque celui que j'ai donné à mon installation Magento. Étant donné que tout le but des clés de formulaire (je pense) a à voir avec la sécurité avec les noms de domaine (XSRF, etc.), cela pourrait être la raison.

J'ai changé mon global ServerNameen, littéralement, "example.com".

J'ai ensuite effacé le cache Magento et toutes les sessions sur le serveur distant et supprimé les cookies de mon navigateur.

Et maintenant ça marche.

(Cela n'avait rien à voir avec PHP max_input_varsdans ce cas. J'ai eu un problème différent il y a longtemps, cependant. Lors de l'enregistrement des produits de catégorie, seul le premier max_input_varsnombre de produits serait enregistré, et le reste était dissocié du Donc, vous pourriez déjà avoir 10 000 produits dans la catégorie, mais lorsque vous essayez d'en ajouter 1 de plus dans l'administrateur et que vous vous retrouvez avec 1 000 seulement.)

Buttle Butkus
la source
1

Ce bug survient en raison de la variable php.ini " max_input_vars " Augmentez-le à 10000 grâce à la fonction php ci-dessous:

ini_set('max_input_vars', 10000);

OU en utilisant la ligne de commande linux

cd /etc/php/7.0/apache2/
vi php.ini (Open for edit and set max_input_vars=10000)
:wq(Press esc and write the mentioned command to save and exit)
sudo /etc/init.d/apache2 restart(Restart Server)
Ahmad Vaqas Khan
la source