Session 与 Cookie
2015-06-17 21:14
302 查看
一.Session
系统提供了 Session 管理和操作的完善支持,只需要通过 session()函数完成,该函
数可以完成 Session 的设置、获取、删除和管理操作。(session是保存在服务器端)
一般来说,在 ThinkPHP 中不需要手动初始化 session,系统会自动初始化。
默认情况下,初始化之后系统会自动启动 session,所以上面初始化的代码了解即可,如果不希望系统自动启动 session
的话,可以如下设置:
在 config.php 进行配置:
在 WeiBo/Home/Controller/UserController.class.php 中对 session 进行使用:
//注释的是不用时ThinkPHP框架时使用session的格式
PS:如果在初始化 session 设置的时候传入 prefix 参数或者单独设置了
SESSION_PREFIX 参数的话,就可以启用本地化 session 管理支持。
这时处理的$_SESSION['user']将变成$_SESSION['think_']['user'],而我们在
处理上没有任何区别。
二.Cookie
ThinkPHP 内置了一个 cookie 函数用于支持和简化 Cookie 的相关操作,该函数可以完成
Cookie 的设置、获取、删除操作。(cookie是保存在客户端)
注释后面是不用ThinkPHP时的cookie的格式
PS:除了过期和前缀,还有 path(保存路径)和 domain(域)。当然也支持配置文件的
写法:COOKIE_PREFIX、COOKIE_EXPIRE、COOKIE_PATH、COOKIE_DOMAIN。
系统提供了 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 处理类型,支持驱动扩展 |
//手工初始化 session( array('name'=>'session_id', 'expire'=>3600));
//配置SESSION初始化 SESSION_OPTIONS=> array( 'name'=>'session_id', 'expire'=>3600, ),
默认情况下,初始化之后系统会自动启动 session,所以上面初始化的代码了解即可,如果不希望系统自动启动 session
的话,可以如下设置:
在 config.php 进行配置:
//设置系统不启用session 'SESSION_AUTO_START' => false,
在 WeiBo/Home/Controller/UserController.class.php 中对 session 进行使用:
//注释的是不用时ThinkPHP框架时使用session的格式
//session赋值 session('user', 'Mr.Lee'); //$_SESSION['user'] = 'Mr.Lee';
//获取session值 echo session('user'); //echo $_SESSION['user'];
//session删除 session('user', null); //unset($_SESSION['user']);
//删除所有session session(null); //$_SESSION=array();
//判断session是否存在,存在则为1,不存在则为空,而不是0 echo session('?user'); //isset($_SESSION['user']);
//暂停session,写入关闭 session('[pause]'); //session_write_close();
//启动session,可开启写入 session('[start]'); //session_start()
//销毁session session('[destroy]'); //session_destroy();
//重新生成session id,这时服务器端不会覆盖掉原来的session id 而是重新生成一个,这时再启用null和destroy都只是删除现在最新的session id,而不是之前的 session('[regenerate]'); //session_regenerate_id();
PS:如果在初始化 session 设置的时候传入 prefix 参数或者单独设置了
SESSION_PREFIX 参数的话,就可以启用本地化 session 管理支持。
//SESSION前缀 'SESSION_PREFIX'=>'think_',
这时处理的$_SESSION['user']将变成$_SESSION['think_']['user'],而我们在
处理上没有任何区别。
二.Cookie
ThinkPHP 内置了一个 cookie 函数用于支持和简化 Cookie 的相关操作,该函数可以完成
Cookie 的设置、获取、删除操作。(cookie是保存在客户端)
注释后面是不用ThinkPHP时的cookie的格式
//cookie赋值 cookie('user', 'Mr.Lee'); //setcookie('user', 'Mr.Lee');
//cookie取值 echo cookie('user'); //echo $_COOKIE['user'];
//cookie赋值,设置过期时间,以秒计时 cookie('user', 'Mr.Lee', 3600);
//cookie赋值,第三参数数组设置过期时间和前缀 cookie('user', 'Lee', array('expire'=>3600,'prefix'=>'think_')); cookie('user', 'Mr.Lee', 'expire=3600&prefix=think_');
//cookie取值,带前缀 echo cookie('think_user');
PS:除了过期和前缀,还有 path(保存路径)和 domain(域)。当然也支持配置文件的
写法:COOKIE_PREFIX、COOKIE_EXPIRE、COOKIE_PATH、COOKIE_DOMAIN。
//cookie赋值,数组 cookie('user',array('Mr.', 'Lee'));
//cookie删除user cookie('user',null);
//cookie删除在配置文件里指定前缀的所有 cookie(null);
//cookie删除指定前缀的 cookie(null, 'think_');
相关文章推荐
- SocketIO --- iOS使用篇
- PHP PDO 连接数据库方法 记录下
- sql server获取当前日期
- iOS开发-71】解决方案:Attempting to badge the application icon but haven't received permiss...
- 使用 Flex 库项目---打包swc
- js跨域问题
- SSRS 实现多个文件同时上传和下载到ReportManager的功能
- ASP.NET如何定时执行任务
- mysql添加用户和入门命令
- Proxifier v3.28
- Database File Management ->> Shrink Data File
- Windows Server 2008的远程控制修改端口,谨防非法远程连接
- Android内核开发:学会分析系统的启动log
- 剑指offer 26 - 复杂链表的复制
- 二叉树的镜像
- laravel, Composer和autoloading
- stm32 DAC输出音频
- iPhone6和iPhone6 Plus和iPhone5s屏幕尺寸,分辨率,密度 对比
- C++ 中拷贝构造函数被调用情况
- 第15周-项目3-max带来的冲突