« 上一篇下一篇 »

使用会话的基本步骤

使用会话的基本步骤有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();

« 上一篇下一篇 »