Вероятно, ничего, потому что ключ формы является случайным, поэтому каждый раз он должен быть другим.
Так что это не должно иметь никакого значения, но наилучшая практика, как вам следует добавить ключ формы в свой шаблон, заключается в следующем:
<?php echo $this->getBlockHtml('formkey') ?>
Обновление: я должен признать, я был неправ в одном: ключ формы остается неизменным во время сеанса. Если у вас другой ключ формы на разных страницах, это может быть проблемой с сторонним полностраничным кешем, который включает ключ формы в кеш (чего не должно быть), или ключ формы находится внутри пользовательского блока, использующего блок кэш. Для последнего я нашел решение: блоки кэша, содержащие form_key (т.е. динамический контент)
getBlockHtml()
реализован вMage_Core_Block_Abstract
иformkey
блок определен вbase/default/layout/core.xml
<input type="hidden" name="form_key" value="<?php echo Mage::getSingleton('core/session')->getFormKey(); ?>"/>
. Кажется, чтобы исправить это, но все еще расстраивает. Есть ли способ лучше.Я знаю, что на этот расплывчатый вопрос нельзя ответить. Однако я мог столкнуться с подобной проблемой здесь, вот что я узнал:
Основываясь на коротком примере, я переопределил действие проверки addtocart, как это в новом модуле:
Приложение / код / местные / Имя / Checkout / Контроллеры / CartController.php
Приложение / код / местные / Имя / Checkout / и т.д. / config.xml
приложение / и т.д. / модули / Name_Checkout.xml
Я надеюсь, что этого будет достаточно для всех, чтобы воссоздать это
источник
Не могу комментировать, поэтому я отвечаю вместо этого. Не добавляйте ключ формы в контроллере. Это отключает преимущества безопасности ключа формы. Если вы используете Varnish, вы можете использовать ESI (Edge Side Includes) для добавления ключа. Вы должны будете сохранить это в куки, чтобы это работало.
источник