首页 » PHP笔记 » yii2设置cookie无效的解决方法

yii2设置cookie无效的解决方法

高蒙 2016/09/20 10:28 2.8k浏览 0评论 Yii2


在学习的yii2框架cookies设置的时候,遇到很纠结的问题。就是我们在设置cookies时候,总是无效。怎么设置都是不对的。将手册上的代码拷贝下来依然是无效的。这是怎么回事?经过研究,找到了解决方法。

请看我的代码:前提是我默认配置好了cookies密钥。

$cookies = Yii::$app->response->cookies;
// 设置cookie有效期
$cookies->add(new \yii\web\Cookie([
    'name' => 'user_name',
    'value' => 'Larry555',
    'expire'=>time()+3600
]));
// 当前请求的cookie信息可通过如下代码获取
$cookiess = Yii::$app->request->cookies;
$cookie = $cookiess->get('user_name');
$language = $cookie->value;
echo $language;
die;

乍一眼看去,貌似没毛病啊,是不是?但是这样写是有问题的,不相信的朋友可以自己试试。那么正确的解决方法是什么呢?

//1.使用Yii::$app->response->cookies的add方法插入cookie项时(remove方法一样),后面代码不能有exit ,die等语句,
//如果要exit,die,需要在执行前加上Yii::$app->response->send();
// 解决设置cookies 获取不正确的问题
 Yii::$app->response->send();

这里是因为我在学习调试的过程中,人为的加上了die,exit等语句,所以,设置的cookies并没有发送到客户端,造成了每次获取的值都是不对的。

配置cookies的密钥的方法,文件地址\frontend\config\main.php

为什么要配置cookies密钥,官网已经说的很清楚了。如果不设置的话,在检验cookies是否正确的时候,会无效。

'components' => [
        'request' => [
    // ....
            'cookieValidationKey'=>'vd55bhr6j#fN', //参数随便填写
        ],
]



相关文章

我有话说

站长昵称:(*)

输入内容:

选个头像:

评论列表

    ...

    高蒙

    男, PHP程序猿

    文章

    485

    标签

    42

    热度

    10w+

    南京, 江苏, 中国

    人生要是没有理想, 那跟咸鱼有什么分别。