Probablement rien car la clé du formulaire est aléatoire, elle doit donc être différente à chaque fois.
Cela ne devrait donc pas faire de différence, mais la meilleure pratique, comment ajouter l'entrée de clé de formulaire à votre modèle, est la suivante:
<?php echo $this->getBlockHtml('formkey') ?>
Mise à jour: je dois admettre que je me suis trompé sur un point: la clé du formulaire reste la même pendant une session. Si vous avez une clé de formulaire différente sur différentes pages, cela peut être un problème avec un cache de page entière tiers qui inclut la clé de formulaire dans le cache (ce qu'il ne devrait pas), ou la clé de formulaire se trouve dans un bloc personnalisé qui utilise le bloc cache. Pour ce dernier, j'ai trouvé une solution: des blocs de cache qui contiennent form_key (c'est-à-dire du contenu dynamique)
Fabian Schmengler
la source
getBlockHtml()
est implémenté dansMage_Core_Block_Abstract
et leformkey
bloc est défini dansbase/default/layout/core.xml
<input type="hidden" name="form_key" value="<?php echo Mage::getSingleton('core/session')->getFormKey(); ?>"/>
en dur cela . Semble y remédier, mais toujours frustrant. existe-t-il une meilleure façon.Je sais qu'il ne faut pas répondre à cette vague question. Cependant, je pourrais avoir rencontré un problème similaire ici, voici ce que j'ai appris:
Sur la base d'un court exemple, j'ai donc remplacé l'action de paiement addtocart comme celle-ci dans un nouveau module:
app / code / local / Nom / Checkout / controllers / CartController.php
app / code / local / Nom / Checkout / etc / config.xml
app / etc / modules / Name_Checkout.xml
J'espère que ce sera suffisamment pour que tout le monde recrée ce
la source
Je ne peux pas commenter, je réponds à la place. N'ajoutez pas la clé de formulaire dans le contrôleur. Il désactive les avantages de sécurité de la clé de formulaire. Si vous utilisez Varnish, vous pouvez utiliser ESI (Edge Side includes) pour ajouter la clé. Vous devrez l'enregistrer dans un cookie pour que cela fonctionne.
la source