注销和销毁会话

  • 2020-09-08 10:54:59
  • 阅读次数:
  • 作者:盈岚科技小编
  • 来源:http://www.lyjtt.cn

网站建设中,当完成一个会话后,可以删除Session变量,也可以将其销毁。如果用户想退出网站,就需要提供一个注销的功能,把所有信息在服务器中销毁。可以调用session_destroy()函数结束当前的会话,并清空会话中的所有资源。该函数的语法格式如下:bool session-destroy ( void )  //销毁和当前Session有关的所有资料相对于session_start()函数,该函数用来关闭Session的运作,如果成功则传回true,销毁Ses-sion资料失败则返回false。

该函数并不会释放和当前Session相关的变量,也不会删除保存在客户端Cookie中的SessionID。因为$_SESSION数组和自定义的数组在使用上是相同的,不过可以使用unset()函数来释放在Session中注册的单个变量。如下所示:unset($_SESSION["username"]);  //删除在Session中注册的用户名变量     unset($_SESSION["passwrod"]);  //删除在Session中注册的用户密码变量

提示:不要使用unset($_SESSION)删除整个$_SESSION数组,这样将不能再通过$_SESSION超全局数组注册变量了。但如果想把某个用户在Session中注册的所有变量都删除,可以直接将数组变量$_SESSION赋上一个空数组。如下所示:$_SESSION=array();  //将某个用户在Session中注册的变量全部清除PHP默认的Session是基于Cookie的,Session ID被服务器存储在客户端的Cookie中,所以在注销Session时也需要清除Cookie中保存的Session ID,而这就必须借助setCookie()函数完成。

【示例】清除客户端Cookie中保存的会话信息。在Cookie中,保存Session ID的Cookie标识名称就是Session的名称,这个名称是在php.ini中,通过session.name属性指定的值。在PHP脚本中,可以通过调用session_name()函数获取Ses-sion名称。删除保存在客户端Cookie中的SessionID,代码如下:

<?php    if (isset($_COOKIE[session_name()])) {                 //判断Cookie中是否保存Session ID        setcookie(session_name(), '', time()-3600, '/');   //删除包含Session ID的Cookie    }?>

通过前面的介绍可以总结出来,Session的注销过程共需要4个步骤。在下面的脚本文件de-stroy.php中,提供完整的4个步骤代码,运行该脚本就可以关闭Session并销毁与本次会话有关的所有资源。代码如下:

<?php//第一步:开启Session并初始化session_start();//第二步:删除所有Session的变量,也可用unset($_SESSION[xxx])逐个删除$_SESSION = array();//第三步:如果使用基于Cookie的Session,使用setCooike()删除包含Session ID的Cookieif (isset($_COOKIE[session_name()])) {    setcookie(session_name(), '', time()-42000, '/');}//第四步:最后彻底销毁Sessionsession_destroy();?>

当前文章标题:注销和销毁会话

当前URL:http://www.lyjtt.cn/news/wzzz/3273.html

上一篇:注册和读取会话

下一篇:传递会话

网站建设、抖音推广、头条推广、微信朋友圈推广、快手推广专线:15368242187(微信同号)