zoukankan      html  css  js  c++  java
  • ThinkPHP---thinkphp会话支持和文件载入

    【一】会话控制

    会话支持一般指cookie和session,在ThinkPHP里为了方便开发,封装了cookie和session方法。

    (1)session方法

    在函数库封装了session方法

    session('name','value')         创建一个名为name的session,值为value

    $value = session('name')     读取session中的name元素值,并赋值给变量$value

    session('name',null)             删除session中名为name元素的值

    session(null)                        删除全部session值

    session()                             读取全部的session信息

    session('?name')                 判断名为name的session元素是否存在,存在返回true,否则返回false

    案例:在方法中使用session方法,对session进行操作

    ①设置session

    session('name','tony');
    session('age','23');
    var_dump($_SESSION);

    ②读取session

    $value = session('name');

    下面案例比较简单,不一一列举

    (2)cookie方法

    在函数库封装了cookie方法

    cookie('name','value')             创建一个名为name的cookie,值为value

    cookie('name','value',3600)    创建一个名为name的cookie,值为value,有效期为3600s

    $value=cookie('name')           读取名为name的cookie,赋值给value

    cookie('name',null)                 删除名为name的cookie

    cookie(null)                            删除所有,但是测试后发现无效。查看手册,发现该方法有BUG。若想实现,则需更改底层实现代码。在下面写到

    cookie()                                  获取全部的cookie

    注意:若不指定时间,则session会话结束时到期。

    修改底层代码:

    // 清除指定前缀的所有cookie
        if (is_null($name)) {
            if (empty($_COOKIE))
                return null;
            // 要删除的cookie前缀,不指定则删除config设置的指定前缀
            $prefix = empty($value) ? $config['prefix'] : $value;
            if (!empty($prefix) || $name == null) {// 如果前缀为空字符串将不作处理直接返回
                foreach ($_COOKIE as $key => $val) {
                    if (0 === stripos($key, $prefix)||$name == null) {//函数库1379行
                        setcookie($key, '', time() - 3600, $config['path'], $config['domain'],$config['secure'],$config['httponly']);
                        unset($_COOKIE[$key]);
                    }
                }
            }
            return null;
        }elseif('' === $name){
            // 获取全部的cookie
            return $_COOKIE;
        }
  • 相关阅读:
    业务领域建模Domain Modeling
    用例建模Use Case Modeling
    分析一套源代码的代码规范和风格并讨论如何改进优化代码
    结合工程实践选题调研分析同类软件产品
    如何提高程序员的键盘使用效率
    python知识准备及环境配置
    一张图片在Python操作下的4种玩法(附源码)
    Python中的错误和异常
    当你忘记网站上的密码时怎么办?Python如何快速帮你找回?
    Python最简单的图片爬虫,20行代码带你爬遍整个网站
  • 原文地址:https://www.cnblogs.com/fightjianxian/p/8678989.html
Copyright © 2011-2022 走看看