程序员人生 网站导航

php session_destroy()和session_unset()区别

栏目:php教程时间:2013-10-24 11:07:08

本文章简单的介绍一下关于session_destroy(),session_unset()区别说明,有需要的朋友可以参考一下。 

session_unset()

PHP代码如下:

  1. <?php 
  2.  
  3. function session_clean1($logout=false) 
  4.  { 
  5.   $v=array(); 
  6.   foreach($_SESSION as $x=>$y
  7.    if($x!="redirector"&&($x!="user"||$logout)) 
  8.     $v[]=$x
  9.  
  10.   foreach($v as $x
  11.    unset($_SESSION[$x]); 
  12.   return
  13.  } 
  14.  
  15. function session_clean2($logout=false) 
  16.  { 
  17.   foreach($_SESSION as $x=>$y
  18.    if($x!="redirector"&&($x!="user"||$logout)) 
  19.     unset($_SESSION[$x]); 
  20.   return
  21.  } 
  22.  
  23. function session_clean3($logout=false) 
  24.  { 
  25.   $s=($logout||!isset($_SESSION["user"]))?array(): 
  26.    array("user"=>$_SESSION["user"]); 
  27.   if(isset($_SESSION["redirector"])) 
  28.    $s["redirector"]=$_SESSION["redirector"]; 
  29.   $_SESSION=$s
  30.  } 
  31.  
  32. ?> 

释放当前在内存中已经创建的所有$_SESSION变量,但不删除session文件以及不释放对应的session id

session_destroy()

删除当前用户对应的session文件以及释放session id,内存中的$_SESSION变量内容依然保留,因此,释放用户的session所有资源,需要顺序执行如下代码:

PHP代码如下:

  1. <?php 
  2. // Initialize the session. 
  3. // If you are using session_name("something"), don't forget it now! 
  4. session_start(); 
  5.  
  6. // Unset all of the session variables. 
  7. $_SESSION = array(); 
  8.  
  9. // If it's desired to kill the session, also delete the session cookie. 
  10. // Note: This will destroy the session, and not just the session data! 
  11. if (ini_get("session.use_cookies")) { 
  12.     $params = session_get_cookie_params(); 
  13.     setcookie(session_name(), '', time() - 42000, 
  14.         $params["path"], $params["domain"], 
  15.         $params["secure"], $params["httponly"
  16.     ); 
  17.  
  18. // Finally, destroy the session. 
  19. session_destroy(); 
  20. ?> 
------分隔线----------------------------
------分隔线----------------------------

最新技术推荐