PHP Session
#PHP Session详解
Session是一种比较重要的PHP中常用的Web应用程序开发工具,它的主要作用是用来在不同页面之间共享数据,或者在同一个页面的多个请求之间共享数据。
##Session的概念
Session是一种服务器端保存用户数据的机制。当开启了Session功能后,系统会分配一个唯一的ID,比如PHPSESSID,给用户用来标识用户的会话状态。会话状态可以包括登录信息、购物车的商品信息等等,而且这些信息在不同的页面间可以进行共享。
##Session的使用
###1、开启Session
在PHP程序中,我们需要在页面的最开始部分,使用如下代码来开启Session:
session_start();
开启了Session后,PHP会自动生成一个session ID,用来唯一标识当前用户,同时,还会在服务器上开辟一个Session空间来存放当前用户数据。
###2、设置Session值
使用以下代码可以设置Session值:
$_SESSION["name"] = "PHP";
上述代码会将“PHP”这个值存入当前Session中的名为“name”的变量中。
###3、读取Session值
使用以下代码可以读取Session值:
$name = $_SESSION["name"];
###4、删除Session值
使用以下代码可以删除Session值:
unset($_SESSION["name"]);
或者使用以下代码销毁整个Session:
session_destroy();
##Session实现原理
当开启Session时,PHP会为当前用户生成一个唯一的Session ID,该ID会在用户与系统交互时一直保持不变。Session ID的生成是通过PHP自带的 session_id() 函数实现的。
当用户向服务器发送一个请求时,如果该请求中包含了Session ID,PHP会通过Session ID来查找该用户的Session相关信息,如果存在,系统就会读取Session信息并存储到当前请求中,从而可以在不同的页面间进行共享。如果没有Session ID,PHP则会重新生成一个Session ID并保存新的Session信息。
##Session设置
Session可设置的相关参数如下:
###1、Session存储路径
可以通过以下代码设置Session存储路径:
session_save_path("path");
其中,path为存储路径。如果不设置,则默认情况下Session信息会存储在服务器的临时目录中,该目录路径通常类似于 “/var/tmp/” 或 “/tmp/”。
###2、Session超时时间
Session超时时间可以通过以下代码设置:
ini_set("session.gc_maxlifetime", "36000");
其中,“36000”为Session超时时间,单位为秒。
###3、Session名称
Session的名称可以通过以下代码设置:
session_name("PHPSESSION");
默认情况下Session名称为“PHPSESSID”。
###4、Session ID 自动启动
如果希望在整个应用程序中自动开启Session,则可以将以下代码放置于PHP配置文件之中:
session.auto_start = 1;
##总结
Session是一种在不同页面之间共享数据的机制,在Web应用程序的开发中具有很重要的作用。通过开启Session并设置相关参数,我们可以灵活的控制Session功能的运作,更好地实现Web应用程序的功能需求。