使用会话的基本步骤有4点:开始一个会话;注册会话变量;使用会话变量以及注销变量并销毁会话等。
1.开始一个会话
在使用会话之前,要先开始一个会话。可以通过如下介绍的两种方法来开始一个会话。
第一种方法,也是最简单的方法,就是以调用session-start()函数开始一段脚本:
session-start();
该函数将检查是否有一个会话ID存在。如果不存在,就创建一个,使其能够通过超级全局数组$-SESSION进行访问。如果已经存在,将这个已经注册的会话变量载入以便使用。
你必须在使用会话的脚本开始部分调用session-start()函数。如果没有调用这个函数,所有保存在该会话的信息都无法在脚本中使用。
第二种方法是将PHP设置成当有用户访问网站的时候就自动启动一个会话。可以使用php.ini文件中的session.auto-start选项完成该设置。这种方法还有一个很大的缺点:启用auto-start设置导致无法使用对象作为会话变量。这是因为该对象的类定义必须在创建该对象的会话开始之前载入。
2.注册一个会话变量
最近,在PHP中,会话变量的注册已经有所改变。自从PHP4.1版本以后,会话变量保存在超级全局数组$-SESSION中。要创建一个会话变量,只需在这些数组中设置一个元素,如下:
$SESSION[ ‘myvar’]=5
以上代码创建会话变量只有在会话结束或手动重置它时才会失效。格局php.ini文件对会话gc-maxlifetime指令设置,该会话也可能会过期。该指令将确定会话的持续时间,超过时间就会被垃圾回收。
3.使用会话变量
要使一个会话变量在某个范围内可以使用,必须首先使用session-start()函数启动一个会话。这样,就可以通过$-SESSION超级全局数组访问这个变量了。
当使用对象作为会话变量时,再调用session-start()函数重新载入会话变量之前,必须包含该类对象的定义。这样,PHP就知道如何构建这个会话对象。
相反,在检查会话变量是否已经被设置时必须非常小心。请记住,变量可以被用户通过GET或POST设置。可以通过检查$-SESSION数组来确定一个变量是否注册的会话变量。可以通过以下代码来检查:
If(isset ($-SESSION[ ‘myvar’])). . .
4.注销变量与销毁会话
当时用完一个会话变量后,可以将其注销。通过注销$-SESSION数组的适当元素,可以直接注销该变量,如下所示:
ubset($-SESSION[ ‘myvar’]);
需要注意的是,session-unregister()函数和session-unset()函数不再是必须的和推荐的方法。这些函数是在引入$-SESSION数组之前才使用的。
我们不能销毁整个$-SESSION数组,因为这样将禁用会话功能。要一次销毁所有的会话变量,可以使用如下句式:
$-SESSION=array();
当使用完一个会话后,首先应该注销所有的变量,然后在调用:
session-destroy();