background image

}
else 
{
// 验证失败,将 $_SESSION["admin"] 置为 false 
$_SESSION["admin"] = false;
die("您无权访问");

?>
是不是很简单呢?将

 $_SESSION 看成是存储在服务器端的数组即可,我们注册的每

一个变量都是数组的键,跟使用数组没有什么分别。

如果要登出系统怎么办?销毁

PHP 会话 Session 即可。

session_start();
// 这种方法是将原来注册的某个变量销毁
unset($_SESSION["admin"]); 
   
// 这种方法是销毁整个 Session 文件
session_destroy(); 
?>
 Session  能否像 Cookie  那样设置生存周期呢?有了  Session  是否就完全抛弃 

Cookie 呢?我想说,结合 Cookie 来使用 Session 才是最方便的。

Session 是如何来判断客户端用户的呢?它是通过 Session ID 来判断的,什么是 

Session ID,就是那个 Session 文件的文件名,Session ID 是随机生成的,因此能保证
唯一性和随机性,确保

 Session 的安全。一般如果没有设置 Session 的生存周期,则 

Session ID 存储在内存中,关闭浏览器后该 ID 自动注销,重新请求该页面后,重新注册
一个

 Session ID。
如果客户端没有禁用

 Cookie,则 Cookie 在启动 PHP 会话 Session 的时候扮演的是

存储

 Session ID 和 Session 生存期的角色。
我们来手动设置

 Session 的生存期:

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

 Session 还提供了一个函数 session_set_cookie_params(); 来设置 Session 

的生存期的,该函数必须在

 session_start() 函数调用之前调用:

// 保存一天 
$lifeTime = 24 * 3600; 
session_set_cookie_params($lifeTime); 
session_start(); 
$_SESSION["admin"] = true; 
   
?>
如果客户端使用

 IE 6.0 , session_set_cookie_params(); 函数设置 Cookie 会有