Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.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
Php 循环所有Magento Cookies&;删除_Php_Magento_Cookies - Fatal编程技术网

Php 循环所有Magento Cookies&;删除

Php 循环所有Magento Cookies&;删除,php,magento,cookies,Php,Magento,Cookies,我有一个Magento站点,有一个IP插件的位置。它大量使用饼干。因此,我需要清除所有cookies magento集。我有我认为正确的代码,但它不起作用: $cookies = Mage::getModel('core/cookie')->get(); foreach($cookies as $cookie) { Mage::getModel('core/cookie')->delete($cookie->name, $cookie->path); }

我有一个Magento站点,有一个IP插件的位置。它大量使用饼干。因此,我需要清除所有cookies magento集。我有我认为正确的代码,但它不起作用:

$cookies = Mage::getModel('core/cookie')->get();
foreach($cookies as $cookie)
{
     Mage::getModel('core/cookie')->delete($cookie->name, $cookie->path);   
}
有些cookie设置在路径“/”上,有些设置在路径“/”上。我想澄清所有问题,以避免任何混乱


有什么办法可以做到这一点吗?谢谢

您也需要清除会话,例如

Mage::getSingleton('checkout/session')->unsetAll();

查看
Mage\u Persistent\u IndexController::unsetCookieAction()
(store.com/Persistent/index/unsetCookie/)

由于$cookie->name和$cookie->path不是对象,所以出现了一个错误。要使循环正常工作,请尝试以下方法

$names = Mage::getModel('core/cookie')->get(); //This returns an array of all cookies
foreach($names as $name) { //loop through the array
    $cookie = Mage::getModel('core/cookie')->get($name); //get the cookie object for each cookie
    $path = $cookie->getPath(); //get the path for the cookie

    Mage::getModel('core/cookie')->delete($name, $path); //delete that cookie
}

谢谢@Steve Robbins,所以我的代码可以保留,这应该在它之前吗?对不起,我是新来Magento的!看看他们在那个控制器中是如何做到的,你的代码会跟着做的。谢谢@Steve Robbins-但是我得到了相同的错误:试图在这一行上获取非对象的属性:Mage::getModel('core/cookie')->delete($cookie->name,$cookie->path);