删除某个session值可以使用PHP的unset函数,删除后就会从全局变量$_SESSION中去除,无法访问。
</>code
- session_start();
- $_SESSION['name'] = 'jobs';
- unset($_SESSION['name']);
- echo $_SESSION['name']; //提示name不存在
如果要删除所有的session,可以使用session_destroy函数销毁当前session,session_destroy会删除所有数据,但是session_id仍然存在。
</>code
- session_start();
- $_SESSION['name'] = 'jobs';
- $_SESSION['time'] = time();
- session_destroy();
值得注意的是,session_destroy并不会立即的销毁全局变量$_SESSION中的值,只有当下次再访问的时候,$_SESSION才为空,因此如果需要立即销毁$_SESSION,可以使用unset函数。
</>code
- session_start();
- $_SESSION['name'] = 'jobs';
- $_SESSION['time'] = time();
- unset($_SESSION);
- session_destroy();
- var_dump($_SESSION); //此时已为空
如果需要同时销毁cookie中的session_id,通常在用户退出的时候可能会用到,则还需要显式的调用setcookie方法删除session_id的cookie值。
unset($_SESSION['xxx']) 删除单个session,unset($_SESSION['xxx']) 用来unregister一个已注册的session变量。
其作用和session_unregister()相同。
session_unregister()在PHP5中已经废弃。
php 官方删除session方式
</>code
- <?php
- // 初始化session.
- session_start();
- /*** 删除所有的session变量..也可用unset($_SESSION[xxx])逐个删除。****/
- $_SESSION = array();
- /***删除sessin id.由于session默认是基于cookie的,所以使用setcookie删除包含session id的cookie.***/
- if (isset($_COOKIE[session_name()])) {
- setcookie(session_name(), '', time()-42000, '/');
- }
- // 最后彻底销毁session.
- session_destroy();
- ?>
使用unset删除name的session值。
</>code
- <?php
- session_start();
- $_SESSION['name'] = 'jobs';
- //在这里删除name的session值
- unset($_SESSION['name']);
- if (isset($_SESSION['name'])) {
- echo $_SESSION['name'];
- return;
- }
- echo 'session被销毁';
彻底销毁Session代码如下所示:
</>code
- <?php
- //开启 Session
- session_start();
- // 删除所有 Session 变量
- $_SESSION = array();
- //判断 cookie 中是否保存 Session ID
- if(isset($_COOKIE[session_name()])){
- setcookie(session_name(),'',time()-3600, '/');
- }
- //彻底销毁 Session
- session_destroy();
- ?>
注意:使用 $_SESSION = array() 清空 $_SESSION数组的同时,也将这个用户在服务器端对应的 Session 文件内容清空。而使用 session_destroy()函数时,则是将这个用户在服务器端对应的 Session 文件删除。
session_destroy()结束当前的会话,并清空会话中的所有资源。该函数不会unset(释放)和当前session相关的全局变量(globalvariables),也不会删除客户端的session cookie.PHP默认的session是基于cookie的,如果要删除cookie的话,必须借助setcookie()函数。
小结:
session_destroy是注销所有的session变量,并且结束session会话;
如果希望删除一些session数据,则可以使用unset()函数或session_destroy()函数。unset()函数的作用是释放指定的session变量,
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛