Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Magento 1.9从迷你购物车中删除2个产品会显示错误:';无效的表单键';_Magento - Fatal编程技术网

Magento 1.9从迷你购物车中删除2个产品会显示错误:';无效的表单键';

Magento 1.9从迷你购物车中删除2个产品会显示错误:';无效的表单键';,magento,Magento,我正在使用Magento 1.9。 我在从迷你购物车中删除产品时遇到问题。 从微型购物车中删除单个产品可以正常工作。但当我尝试在不重新加载页面的情况下删除另一个产品时,会显示以下错误: 无效的表单密钥 跟踪: **#0 /var/sites/l/xyz.com/app/code/core/Mage/Checkout/controllers/CartController.php(604): Mage::throwException('Invalid form ke...') #1 /var/sit

我正在使用Magento 1.9。 我在从迷你购物车中删除产品时遇到问题。 从微型购物车中删除单个产品可以正常工作。但当我尝试在不重新加载页面的情况下删除另一个产品时,会显示以下错误: 无效的表单密钥

跟踪:

**#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}**

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

因为Magento 1.8所有表单都需要formkey

首先,在从迷你购物车中删除时,您需要使用开发工具检查是否有任何表单没有formkey

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

在打开后添加formkey-标记此行:

<input type="hidden" name="form_key" value="<?php echo Mage::getSingleton('core/session')->getFormKey(); ?>" />

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

错误原因:

post_max_size = 128M
正如一些关于进口的文章所建议的

将其设置回默认值(64M)后

解决方案:

post_max_size = 64M

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

问题在于表单键

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

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

在函数中,您将看到:

 if(!$this->_validateFormKey()) {
       Mage::throwException('Invalid form key');
 }
删除这行代码,并尝试检查购物车删除操作。
现在它将正常工作。

对于上述问题,请遵循以下步骤: 1.打开下面的文件

app/design/frontend/rwd/default/template/checkout/cart/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问题,然后在购物车页面正常工作。

Hi,是的,你能告诉我这个微型购物车的表单文件在哪里吗?我已经搜索过了,但找不到。请帮帮忙。谢谢。在减小post\U max\U大小后问题得到解决是没有意义的,是吗你知道原因吗?@leo遗憾的是,我不知道。如果我知道了,我会发布它,好吗?你的网站上有没有安装跟踪软件?我也遇到过同样的问题,结果是Adobe的动态标记管理器导致了问题。Adobe DTM正在对“删除项”执行GET请求我们的搜索引擎优化团队不得不修改跟踪规则,指示Adobe DTM不要针对特定的链接。