关于PHP5 Session生命周期介绍

2010年06月08日 17:07 标签:PHP 

PHP5有很多值得学习的地方,这里我们主要介绍PHP5 Session的使用,Session 是如何来判断客户端用户的呢?它是通过 Session ID 来判断的,什么是 Session ID,就是那个 Session 文件的文件名,Session ID 是随机生成的,因此能保证唯一性和随机性,确保Session 的安全。

一般如果没有设置 Session 的生存周期,则 Session ID 存储在内存中,关闭浏览器后该 ID 自动注销,重新请求该页面后,重新注册一个 Session ID。

如果客户端没有禁用 Cookie,则 Cookie 在启动 Session 会话的时候扮演的是存储 Session ID 和 Session 生存期的角色。我们来手动设置 Session 的生存期:

session_start(); 
// 保存一天 
$lifeTime = 24 * 3600; 
setcookie(session_name(), session_id(), time() + $lifeTime, "/"); 

其实PHP5 Session还提供了一个函数 session_set_cookie_params(); 来设置PHP5 Session的生存期的,该函数必须在 session_start() 函数调用之前调用:

// 保存一天 
$lifeTime = 24 * 3600; 
session_set_cookie_params($lifeTime); 
session_start();

2条评论

  • 你愁啥,还不滚去学习

    严格来说,服务器的session文件是有有效期的,默认是24分钟,但是由于php的session回收机制是概率启动,默认配置时1%,相当于执行100次session_start()才有可能启动session的垃圾回收机制,从而删除服务器过期的session文件。如果只删除前台的session_id,真正意义上,只是删除了前台session_id和服务器session文件的联系,服务器session文件并没有马上被删除,而是处于一个游离状态,直到启动垃圾清理。

  • 下次可以发个伪静态分页的教程吗