YII读取和设置Cookie

读取 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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Composer 基本用法 // 安装yii程序 composercreate-project--prefer-d...
    热过豆腐干阅读 1,279评论 0 4
  • 目录Cookie机制什么是CookieCookie的不可跨域名性Unicode编码:保存中文BASE64编码:保存...
    Tomatoro阅读 16,998评论 7 186
  • 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Se...
    chinariver阅读 5,711评论 1 49
  • 细说Cookie 阅读目录 开始 Cookie 概述 Cookie的写、读过程 使用Cookie保存复杂对象 Js...
    拉肚阅读 1,161评论 0 4
  • 马上我就要步入睡眠了。这一周突然就散了下来,心情持续混乱。 现在脑海中不停回想,自我意向不稳定这个词。我的自我意象...
    史努比psy阅读 196评论 0 0