Magento 1.9因此从迷你购物车中删除了2个产品,显示错误:“表单密钥无效”

时间:2014-07-18 13:12:20

标签: magento

我正在使用Magento 1.9。 我在从迷你车中删除产品时面临问题。 从minicart中删除单个产品是正常的。但是当我尝试删除另一个产品而不重新加载页面时。它显示以下错误: 表单密钥无效

跟踪:

**#0 /var/sites/l/xyz.com/app/code/core/Mage/Checkout/controllers/CartController.php(604): Mage::throwException('Invalid form ke...')
#1 /var/sites/l/xyz.com/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Mage_Checkout_CartController->ajaxDeleteAction()
#2 /var/sites/l/xyz.com/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('ajaxDelete')
#3 /var/sites/l/xyz.com/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#4 /var/sites/l/xyz.com/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#5 /var/sites/l/xyz.com/app/Mage.php(684): Mage_Core_Model_App->run(Array)
#6 /var/sites/l/xyz.com/index.php(87): Mage::run('', 'store')
#7 {main}**

任何人都可以提供帮助。请提前谢谢。

4 个答案:

答案 0 :(得分:0)

由于Magento 1.8所有表格都需要一个表格。

首先,如果在从迷你购物车中删除时没有formkey的表单,请查看developer-tools。

如果有,请转到您的IDE并在您的模板中搜索此位置(可能该表单有一个id或类,这将有助于识别正确的模板。

打开-Tag和此行后添加formkey:

<input type="hidden" name="form_key" value="<?php echo Mage::getSingleton('core/session')->getFormKey(); ?>" />
希望有所帮助!

答案 1 :(得分:0)

使用MAgento 1.9.0.1在增加以下PHP设置(php.ini)进行导入后,我遇到了同样的问题:

错误原因:

post_max_size = 128M

正如一些关于进口的文章所建议的那样......

将它们设置回默认值(64M)

解决方案:

post_max_size = 64M

并且,当然,删除/var/cache/下的所有缓存文件夹,一切都恢复正常。

答案 2 :(得分:0)

对于上述问题,请按以下步骤操作: 1.打开以下文件

应用程序/设计/前端/ RWD /默认/模板/结帐/购物车/ minicart / default.phtml

更改以下第157行,如下所示:

  <a href="<?php echo Mage::getUrl('checkout/cart/ajaxDelete',array('id'=>$this->getItem()->getId(),Mage_Core_Controller_Front_Action::PARAM_NAME_URL_ENCODED => Mage::helper('core/url')->getEncodedUrl(),'form_key' => Mage::getSingleton('core/session')->getFormKey())); ?>" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Remove This Item')) ?>"
               data-confirm="<?php echo $this->__('Are you sure you would like to remove this item from the shopping cart?') ?>"
               class="remove">
                <?php echo $this->__('Remove Item') ?>
            </a>

现在刷新购物车页面,并确认购物车页面中没有jquery问题,然后在购物车页面正常工作。

答案 3 :(得分:-1)

问题是表格密钥。

迷你购物车ajaxDelete功能未获取表单密钥。我们可以通过删除表单密钥检查来解决此问题。

转到/app/code/core/Mage/Checkout/controllers,打开CartController.php并找到函数ajaxDeleteAction()

在功能中,您将看到:

 if(!$this->_validateFormKey()) {
       Mage::throwException('Invalid form key');
 }

删除此行代码,然后尝试检查购物车删除操作。 它现在可以正常工作。