Yii2 Cookies未被删除
因此,我很难理解Yii2如何管理cookies的概念。我看到一些资源说通过以下方式设置cookies:Yii2 Cookies未被删除,cookies,yii2,Cookies,Yii2,因此,我很难理解Yii2如何管理cookies的概念。我看到一些资源说通过以下方式设置cookies: Yii::$app->response->cookies->add(new Cookie([ 'name' => 'some_cookie_name', 'value' => 'some cookie value', 'domain' => ( YII_ENV_DEV )? '.dev.example.co.uk' : '',
Yii::$app->response->cookies->add(new Cookie([
'name' => 'some_cookie_name',
'value' => 'some cookie value',
'domain' => ( YII_ENV_DEV )? '.dev.example.co.uk' : '',
'expire' => time() + (60*60*24*30) // Expire in 30 days time
]));
这很好,但是当涉及到使用以下方法删除cookie时:
Yii::$app->response->cookies->remove('some_cookie_name');
它不起作用。cookie仍保留在浏览器中
要确认,删除cookie后会有重定向
我正在查看的资源是:请试试这个
创建cookie
$cookie = new Cookie( [
'name' => 'some_cookie_name',
'value' => some cookie value,
'expire' => time() + 86400 * 365,
] );
\Yii::$app->getResponse()->getCookies()->add( $cookie );
$cookies = Yii::$app->response->cookies;
unset($cookies['some_cookie_name']);
or
$cookies->remove( 'some_cookie_name' );
移除cookie
$cookie = new Cookie( [
'name' => 'some_cookie_name',
'value' => some cookie value,
'expire' => time() + 86400 * 365,
] );
\Yii::$app->getResponse()->getCookies()->add( $cookie );
$cookies = Yii::$app->response->cookies;
unset($cookies['some_cookie_name']);
or
$cookies->remove( 'some_cookie_name' );
请尝试删除cookie的以下代码:
Yii::$app->response->cookies->remove(new Cookie([
'name' => 'some_cookie_name',
'domain' => ( YII_ENV_DEV )? '.dev.example.co.uk' : '',
]));
作为
remove()
方法可以给出yii\web\Cookie\string
如果在设置cookie时未定义域
。默认使用当前域名(前缀中没有
)。所以当你想删除它的时候。你可以用这个:
Yii::$app->response->cookies->remove('some_cookie_name');
但是如果您在设置cookie时定义了域
,那么您应该在remove方法中通过传递对象而不是字符串来定义它,如下所示:
Yii::$app->response->cookies->remove(new Cookie([
'name' => 'some_cookie_name',
'domain' => 'your-domain.com',
]));
以下方法效果最佳:
$cookies = Yii::$app->response->cookies;
$cookies->remove('username');
unset($cookies['username']);
引用自
在以下链接中找到YII framework2.o中的Cookies处理
这对我来说是可行的,如果你想从子域中删除cookie,你需要指定该域,该域应该删除该cookie
unset($_COOKIE['cookie_name']);
setcookie('cookie_name', null, -1, '/','your_domain.com');
请改进这个答案。为什么会有人点击这个链接?