基于session_unset与session_destroy的区别详解

session_unset()

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

  session_destroy()

  删除当前用户对应的session文件以及释放sessionid,内存中的$_SESSION变量内容依然保留

  因此,释放用户的session所有资源,需要顺序执行如下代码:

  程序代码

  

复制代码 代码如下:

  <?php

  $_SESSION['user'] = 'wangh';

  session_unset();

  session_destroy();

  ?>

  如果只是调用session_destroy();

  那么echo $_SESSION['user']依然是有值的

  即内存中的$_SESSION变量内容依然保留

  [Session]

  session.save_handler       = files    ; 用于保存/取回数据的控制方式

  session.save_path          = C:\win\temp     ; 在 save_handler 设为文件时传给控制器的参数,

  ; 这是数据文件将保存的路径。文件夹要事先建好

  session.use_cookies        = 1        ; 是否使用cookies 1是,0否

  session.name               = PHPSESSID

  ; 用在cookie里的session的名字

  session.auto_start         = 0        ; 在请求启动时初始化session

  session.cookie_lifetime    = 0        ; 为按秒记的cookie的保存时间,

  ; 或为0时,直到浏览器被重启

  session.cookie_path        = /        ; cookie的有效路径

  session.cookie_domain      =          ; cookie的有效域

  session.serialize_handler = php      ; 用于连接数据的控制器

  ; php是 PHP 的标准控制器。

  session.gc_probability     = 1        ; 按百分比的'garbage collection(碎片整理)'进程

  ; 在每次 session 初始化的时候开始的可能性。

  session.gc_maxlifetime     = 1440     ; 在这里数字所指的秒数后,保存的数据将被视为

  ; '碎片(garbage)'并由gc 进程清理掉。

  session.referer_check      =          ; 检查 HTTP引用以使额外包含于URLs中的ids无效

  session.entropy_length     = 0        ; 从文件中读取多少字节

  session.entropy_file       =          ; 指定这里建立 session id

  ; session.entropy_length     = 16

  ; session.entropy_file       = /dev/urandom

  session.cache_limiter      = nocache ; 设为{nocache,private,public},以决定 HTTP 的

  ; 缓存问题

  session.cache_expire       = 180      ; 文档在 n 分钟后过时

  session.use_trans_sid      = 1        ; 使用过渡性的 sid 支持,若编译时许可了

  ;   --enable-trans-sid

  url_rewriter.tags          = "a=href,area=href,frame=src,input=src,form=fakeentry"