文章教程

9.10会话管理

9/17/2020 9:40:31 PM 人评论 次浏览

9.10 会话管理

下面介绍有关会话管理的基本操作。

9.10.1 创建会话

有两个方式创建会话:一个是使用函数session_start()函数;另一个是设定PHP在客户访问站点的时候自动创建一个会话。

1.关于使用session_start()函数

这个函数首先会检查当前是否已经存在一个会话,如果不存在,它将创建一个全新的会话,并且这个会话可以访问超全局变量$_SESSION数组。如果已经有一个存在的会话,函数会直接使用这个会话,加载已经注册过的会话变量,加以使用。

这个函数应该放在要使用session的程序的开头。如果,不是放在开头,原有session数据将无法使用。

2.关于PHP自动创建

完成这一操作可以在php.ini中设定session.auto_start为启用。但是使用这种方法的同时,不能把session变量对象化,应定义此对象的类,必须在创建会话之前加载,然后新创建的会话才能加载此对象。

9.10.2 注册会话变量

通过对$_SESSION数组赋值来注册会话变量,如$_SESSION['name']= 'xiaoli'。这个会话变量值会在此会话结束或是被注销后失效。或者还会根据php.ini中的session.gc_maxlifetime(当前系统设置的1440秒,也就是24小时)会话最大生命周期数,过期而失效。

9.10.3 使用会话变量

使用会话变量,首先要使用session_start()函数,加载当前session或创建一个新session。然后访问超全局变量$_SESSION数组,使用变量数据。

但是在访问$_SESSION数组前,先要使用isset()或empty()来确定$_SESSION中会话变量是否设置。

9.10.4 注销会话变量和销毁session

注销会话变量使用unset()函数就可以,如unset($_SESSION['name'])。不再需要使用PHP4中的session_unregister()或session_unset()。

如果要注销所有会话变量,只需要向$_SESSION赋值一个空数组就可以了,如$_SESSION = array()。

注销完成后,使用session_destory()销毁会话即可,其实就是清除相应的sessionID。

教程类别