多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
### 配置介绍 如果你是使用**归档文件**(也就是官网下载下来的压缩包)安装的Yii,那么你必须到`config/web.php`下配置好`cookieValidationKey`才能正常访问Yii,配置方法很简单,脸滚键盘打一串英文+数字就行了 #### 那么它有啥用呢? 默认情况下,Yii生成的Cookie值会很长,原因是Yii在Cookie值的前面加了一段hash,这个hash是用`Cookie`值+`cookieValidationKey`值生成的,用于校验Cookie的完整性,防止客户端非法篡改。 #### 如何关闭? 在`cookieValidationKey`下面加一行`enableCookieValidation => false`就行了。这样你的Cookie就跟原生的一样了。不过为了安全性并不建议关闭,除非有特殊需求(例如需要兼容另外一套系统的Cookie) ### 读取Cookie ```php // 从请求获取cookies组件实例 $cookie = Yii::$app->request->cookies; // 获取cookies值 $cookie->getValue('cookieName'); ``` >[info] 这里用的是`getValue`方法,返回的是字符串 而`get`方法返回的是`yii\web\Cookie`的实例,是一个cookie对象 ### 写入Cookie ```php // 从响应获取cookies组件实例 $cookie = Yii::$app->response->cookies; $cookie->add(new yii\web\Cookie([ 'name' => 'cookieName', 'value' => 'coockieValue', 'expire' => time()+3600, ])); ``` >[info] 这次是从响应(response)中获取cookie组件的 与读取则需要从请求(request)中获取 同理,删除cookie时也需要从响应(response)中获取cookie组件