Probablemente nada porque la clave de forma es aleatoria, por lo que tiene que ser diferente cada vez.
Por lo tanto, no debería marcar la diferencia, pero la mejor práctica, cómo debe agregar la entrada de clave de formulario a su plantilla, es esta:
<?php echo $this->getBlockHtml('formkey') ?>
Actualización: Tengo que admitir que me equivoqué en un punto: la clave de formulario permanece igual durante una sesión. Si tiene una clave de formulario diferente en páginas diferentes, esto podría ser un problema con un caché de página completa de un tercero que incluye la clave de formulario en el caché (que no debería), o la clave de formulario está dentro de un bloque personalizado que está usando el bloque cache. Para este último, encontré una solución: bloques de caché que contienen form_key (es decir, contenido dinámico)
getBlockHtml()
se implementa enMage_Core_Block_Abstract
y elformkey
bloque se define enbase/default/layout/core.xml
<input type="hidden" name="form_key" value="<?php echo Mage::getSingleton('core/session')->getFormKey(); ?>"/>
. Parece solucionarlo, pero sigue siendo frustrante. ¿Hay una mejor manera?Sé que esta vaga pregunta no debe responderse. Sin embargo, podría haber encontrado un problema similar aquí, esto es lo que he aprendido:
Basado en un breve ejemplo , por lo tanto, he anulado la acción de pago addtocart como esta en un nuevo módulo:
app / code / local / Name / Checkout / controllers / CartController.php
app / code / local / Name / Checkout / etc / config.xml
app / etc / modules / Name_Checkout.xml
Espero que esto sea lo suficientemente extenso para que todos puedan recrear esto
fuente
No puedo comentar, así que estoy respondiendo en su lugar. No agregue la clave de formulario en el controlador. Deshabilita los beneficios de seguridad de la clave de formulario. Si está utilizando Varnish, puede usar ESI (Edge Side incluye) para agregar la clave. Tendrás que guardarlo en una cookie para que eso funcione.
fuente