zoukankan      html  css  js  c++  java
  • Session 与 Cookie

    一.Session
    系统提供了 Session 管理和操作的完善支持,只需要通过 session()函数完成,该函
    数可以完成 Session 的设置、获取、删除和管理操作。(session是保存在服务器端)
    一般来说,在 ThinkPHP 中不需要手动初始化 session,系统会自动初始化。

    参数名 说明
    id session_id 值
    name  session_name 值
    path session_save_path 值
    prefix  session 本地化空间前缀
    expire  session.gc_maxlifetime 设置值
    domain session.cookie_domain 设置值
    use_cookies  session.use_cookies 设置值
    use_trans_sid  session.use_trans_sid 设置值
    type session 处理类型,支持驱动扩展
    1 //手工初始化
    2 session( array('name'=>'session_id', 'expire'=>3600));
    1 //配置SESSION初始化
    2 SESSION_OPTIONS=> array(
    3 'name'=>'session_id',
    4 'expire'=>3600,
    5 ),

    默认情况下,初始化之后系统会自动启动 session,所以上面初始化的代码了解即可,如果不希望系统自动启动 session
    的话,可以如下设置:

    在 config.php 进行配置:

    1 //设置系统不启用session
    2 'SESSION_AUTO_START' => false,

    在 WeiBo/Home/Controller/UserController.class.php 中对 session 进行使用:

    //注释的是不用时ThinkPHP框架时使用session的格式

    1 //session赋值
    2 session('user', 'Mr.Lee'); //$_SESSION['user'] = 'Mr.Lee';
    1 //获取session值
    2  echo session('user'); //echo $_SESSION['user'];
    1 //session删除
    2 session('user', null); //unset($_SESSION['user']);
    1 //删除所有session
    2 session(null); //$_SESSION=array();
    1 //判断session是否存在,存在则为1,不存在则为空,而不是0
    2  echo session('?user'); //isset($_SESSION['user']);
    1 //暂停session,写入关闭
    2 session('[pause]'); //session_write_close();
    1 //启动session,可开启写入
    2 session('[start]'); //session_start()
    1 //销毁session
    2 session('[destroy]'); //session_destroy();
    1 //重新生成session id,这时服务器端不会覆盖掉原来的session id 而是重新生成一个,这时再启用null和destroy都只是删除现在最新的session id,而不是之前的
    2 session('[regenerate]'); //session_regenerate_id();

    PS:如果在初始化 session 设置的时候传入 prefix 参数或者单独设置了
    SESSION_PREFIX 参数的话,就可以启用本地化 session 管理支持。

    1 //SESSION前缀
    2 'SESSION_PREFIX'=>'think_',

    这时处理的$_SESSION['user']将变成$_SESSION['think_']['user'],而我们在
    处理上没有任何区别。

    二.Cookie

    ThinkPHP 内置了一个 cookie 函数用于支持和简化 Cookie 的相关操作,该函数可以完成
    Cookie 的设置、获取、删除操作。(cookie是保存在客户端)

    注释后面是不用ThinkPHP时的cookie的格式

    1 //cookie赋值
    2 cookie('user', 'Mr.Lee'); //setcookie('user', 'Mr.Lee');
    1 //cookie取值
    2  echo cookie('user'); //echo $_COOKIE['user'];
    1 //cookie赋值,设置过期时间,以秒计时
    2 cookie('user', 'Mr.Lee', 3600);
    1 //cookie赋值,第三参数数组设置过期时间和前缀
    2 cookie('user', 'Lee',  array('expire'=>3600,'prefix'=>'think_'));
    3 cookie('user', 'Mr.Lee', 'expire=3600&prefix=think_');
    1 //cookie取值,带前缀
    2 echo cookie('think_user');

    PS:除了过期和前缀,还有 path(保存路径)和 domain(域)。当然也支持配置文件的
    写法:COOKIE_PREFIX、COOKIE_EXPIRE、COOKIE_PATH、COOKIE_DOMAIN。

    1 //cookie赋值,数组
    2 cookie('user',array('Mr.', 'Lee'));
    1 //cookie删除user
    2 cookie('user',null);
    1 //cookie删除在配置文件里指定前缀的所有
    2 cookie(null);
    1 //cookie删除指定前缀的
    2 cookie(null, 'think_');
  • 相关阅读:
    图解Python 【第八篇】:网络编程-进程、线程和协程
    TCP协议三次握手、四次挥手过程
    OSI七层模型与TCP/IP五层模型
    TCP/IP协议分为哪四层,具体作用是什么。
    app测试中,ios和android的区别
    APP在用户设备发生crash,应该怎么修复
    Android四层架构
    安卓四大组件、六大布局、五大存储
    测试工程师准备找工作,需要准备什么?
    接口测试响应码解析
  • 原文地址:https://www.cnblogs.com/jacson/p/4584386.html
Copyright © 2011-2022 走看看