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区分大小写
  • 相关阅读:
    公平锁和非公平锁
    读写锁StampedLock的思想
    线程工作窃取算法
    关于SQL注入的问题以及解决方法
    简单工厂模式、工厂模式和抽象工厂模式
    RestFul的无状态规则详解
    Identity Server 4 中文文档(v1.0.0) 目录
    第3章 支持和规范
    第2章 术语
    第1章 背景
  • 原文地址:https://www.cnblogs.com/yhdsir/p/5181791.html
Copyright © 2011-2022 走看看