magento布局文件formkey的作用

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');
    }
}

猜你喜欢

转载自hnlixf.iteye.com/blog/1771591