設(shè)置cookie
$cookies = Yii::$app->response->cookies;
if (! empty ( $uid )) {
$uCookie=$cookies->add(new Cookie([
'name' => 'uid_ck',
'value' =>$uid,
'expire' =>time()+ 30*24*3600,
'domain'=>'.yiwang.com'//作用域?qū)懽址? ]));
}
清除cookie
$cookie = Yii::$app->response->cookies;
$cookie->remove('uid_ck');
如果以上方法清除不了你的cookie還可以再加上下邊這個(gè)
$cookie = Yii::$app->response->cookies;
$uCookie=$cookie->add(new Cookie([
'name' => 'uid_ck',
'value' =>'',
'expire' =>time() - 30*24*3600,
'domain'=>$domainCk
]));
獲取cookie
//檢查是否存在該值园蝠,然后再獲取
$cookies = Yii::$app->request->cookies;
if ($cookies->has('uid_ck')) {
$openid = $cookies->get('uid_ck');
}
yii2清除不了cookie值,存不了cookie值
公眾號(hào)設(shè)置的退出登錄時(shí)不時(shí)不管用
yii2清除不了cookie值,存不了cookie值
1)發(fā)現(xiàn)同一個(gè)方法里因?yàn)榧扔性O(shè)置cookie的也有獲取cookie的地方衡楞,心想著上邊用了混驰,下邊再覆蓋這個(gè)變量名$cookies就可以了缤至,但是發(fā)現(xiàn)不行硼砰,
以下是我出錯(cuò)源代碼
$cookies = Yii::$app->request->cookies;
$openid = $cookies->get('optKey_open');//可以取到值
$cookies = Yii::$app->response->cookies;//改為$cookie
$cookies->add(new Cookie([//存不了//改為$cookie就可以
'name' => 'isNewUser',
'value' => 1,
'expire' => $setTime + 10,
'domain' => $domainCk
]));
原因:設(shè)置存取的cookie變量同名了
2)還有一個(gè)是退不出登錄
以下是我的出錯(cuò)源代碼
$cookie = Yii::$app->response->cookies;
$a= $cookie->add(new Cookie([
'name' => 'uid_ck',
'value' => '',
'expire' => time() - 30 * 24 * 3600,
'domain' => $domainCk
]));
$a=$cookie->add(new Cookie([
'name' => 'optKey_open',
'value' => '',
'expire' => time() - 30 * 24 * 3600,
'domain' => $domainCk
]));
就是因?yàn)橥?a糠赦,可以去掉"$a=",或者寫成兩個(gè)不同的變量名磅废,同名可能覆蓋或者像我這樣的兩個(gè)都設(shè)置不成功