YII读取和设置Cookie

作者: 三不小青年 | 来源:发表于2018-06-01 09:35 被阅读0次

    读取 Cookies

    当前请求的cookie信息可通过如下代码获取:

    // 从 "request" 组件中获取 cookie 集合(yii\web\CookieCollection)$cookies= Yii::$app->request->cookies;// 获取名为 "language" cookie 的值,如果不存在,返回默认值 "en"$language=$cookies->getValue('language','en');// 另一种方式获取名为 "language" cookie 的值if(($cookie=$cookies->get('language')) !==null) {$language=$cookie->value;}// 可将 $cookies 当作数组使用if(isset($cookies['language'])) {$language=$cookies['language']->value;}// 判断是否存在名为"language" 的 cookieif($cookies->has('language')) ...if(isset($cookies['language'])) ...

    发送 Cookies

    可使用如下代码发送 cookie 到终端用户:

    // 从 "response" 组件中获取 cookie 集合(yii\web\CookieCollection)$cookies= Yii::$app->response->cookies;// 在要发送的响应中添加一个新的 cookie$cookies->add(new\yii\web\Cookie(['name'=>'language','value'=>'zh-CN',]));// 删除一个 cookie$cookies->remove('language');// 等同于以下删除代码unset($cookies['language']);

    除了上述例子定义的 name 和 value 属性 yii\web\Cookie 类也定义了其他属性来实现cookie的各种信息,如domainexpire 可配置这些属性到 cookie 中并添加到响应的 cookie 集合中。

    注意:为安全起见 yii\web\Cookie::$httpOnly 被设置为 true, 这可减少客户端脚本访问受保护 cookie(如果浏览器支持)的风险, 更多详情可阅读 httpOnly wiki article

    相关文章

      网友评论

        本文标题:YII读取和设置Cookie

        本文链接:https://www.haomeiwen.com/subject/yzjhsftx.html