magento表单提交时有个key,是如何引用进模板的:
<?php echo $this->getBlockHtml('formkey')?>
formkey配置代码:
<block name=”formkey” type=”core/template” template=”core/formkey.phtml” />
模板文件formkey.phtml内容:
<input name=”form_key” type=”hidden” value=”<?php echo Mage::getSingleton(‘core/session’)->getFormKey() ?>” />
core/session对应的文件为core/model/session.php。
验证key是否正确的底层代码:
protected function _validateFormKey() { if (!($formKey = $this->getRequest()->getParam(‘form_key’, null)) || $formKey != Mage::getSingleton(‘core/session’)->getFormKey()) { return false; } return true; }
从中可以看出当前网页的form_key与系统保存的form_key进行判断,如不同就返回false;
扫描二维码关注公众号,回复:
771876 查看本文章
表单提交时验证KEY是否正确:
public function editPostAction() { if (!$this->_validateFormKey()) { return $this->_redirect('*/*/edit'); } }