Magento 1.9从迷你购物车中删除2个产品会显示错误:';无效的表单键';
我正在使用Magento 1.9。 我在从迷你购物车中删除产品时遇到问题。 从微型购物车中删除单个产品可以正常工作。但当我尝试在不重新加载页面的情况下删除另一个产品时,会显示以下错误: 无效的表单密钥 跟踪: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
**#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不要针对特定的链接。