zoukankan      html  css  js  c++  java
  • PHP/Yii2操作Cookie,常见问题以及注意事项

    设置Cookie

    PHP

    setcookie("name", "Larry",time()+3600

    Yii2

    $cookies = Yii::$app->response->cookies;
    $cookies->add(new yiiwebCookie([
         'name' => 'name',
         'value' => 'Larry',
         'expire'=>time()+3600
    ]));

    创建名为nameCookie,赋值为Larry,并且规定该Cookie一小时后失效

    expire参数是一个UNIX时间戳,如果设置为0,或省略,该Cookie将在浏览器关闭时消失

    获取Cookie

    PHP

    $name=$_COOKIE["user"]

    Yii2

    $cookies = Yii::$app->request->cookies;//注意此处是request
    $language = $cookies->get('user', 'defaultValue');

    检查Cookie

    PHP

    if(isset($_COOKIE["user"])){

    Yii2

    $cookies = Yii::$app->request->cookies;
    if (isset($cookies['user'])){
    if ($cookies->has('user')){
    if (isset($cookies['user'])){

    删除Cookie

    PHP

    setcookie("user", "", time()-3600);//把失效日期设置为过去1小时
    unset($_COOKIE['user']);

    Yii2

    $cookies = Yii::$app->request->cookies;
    $cookies->remove('user');

    常见问题

    • Cookiekey不能含“.” 符号,会被解析成_,导致具有以上符号的key获取不到Cookie的bug

    • 区分Yii2中 Yii::$app->request->cookies 和 Yii::$app->response->cookies 不仔细容易直接复制粘贴了。

      1.如果把第一个用来设置Cookie,会报错:The cookie collection is read only

      2.如果把第二个用来获取Cookie,程序正常执行未发生异常,但会获取不到Cookie,不容易察觉。。。

    • Cookiekey区分大小写
  • 相关阅读:
    useState回调函数
    Ahook
    我的创业和职业观点
    一个超级工业软件的能力在哪
    【542】Mac上面修改jupyter notebook默认打开页面
    【541】shapely 相关功能
    【540】时间戳数字转换为格式化时间
    【539】地球两点距离以及面积计算
    【538】二维数据实现随机采样
    新春首发!Spring Boot 2 个新版本...
  • 原文地址:https://www.cnblogs.com/yhdsir/p/5181791.html
Copyright © 2011-2022 走看看