您的位置:首页 > 其它

Session 与 Cookie

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

参数名说明
idsession_id 值
name session_name 值
pathsession_save_path 值
prefix session 本地化空间前缀
expire session.gc_maxlifetime 设置值
domainsession.cookie_domain 设置值
use_cookies session.use_cookies 设置值
use_trans_sid session.use_trans_sid 设置值
typesession 处理类型,支持驱动扩展
//手工初始化
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_');
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: