php session
1、什么是session
session译为“会话”,本义是指有始有终的一系列动作消息,在计算机术语中,session是指一个终端用户与交互系统进行通信的时间间隔,通常是指从注册到注销退出系统所经过的时间。因此session实际上是一个特定的时间概念。
2、工作原理
当启动一个session会话时,会生成一个随机且唯一的session_id,也就是session的文件名,此时session_id存储在服务器的内存中,当关闭页面时此id会自动注销,重新登录此页面,会再次生成一个随机且唯一的id。
3、session的功能
session在web技术中非常重要。由于网页是一种无状态的连接程序,因此无法得知用户的浏览状态。通过session则可记录用户相关信息,以供用户再次以此身份对web服务器提交要求时做确认。如,在电子商务网站中,通过session记录用户登陆的信息,以及用户所购买的商品,如果没有session,那么用户每进入一个页面都需要登陆一次用户名和密码。
4、session使用
创建一个session需要4个步骤
a、启动会话
b、注册会话
c、使用会话
d、删除会话
a-1、启动会话的方式有两种,一种是使用session_start()函数,另一种是使用session_register()函数为会话创建一个变量来隐含的启动会话
session_start()函数在页面开始位置调用,然后会话变量被登录到数据$_session.
a-2、会话变量被创建后,全部保存在数组session中。通过数组_session创建一个会话变量很容易,只要直接给该数组添加一个元素即可。
<?php session_start(); $_SESSION["admin"]=null; ?>
上述程序中第一行代码是用户启动session,第二行代码是声明一个名为admin的变量,并赋值为空
a-3、使用会话时,我们需要判断会话变量是否有一个会话id存在,如果不存在,就需要创建一个,并且使其能够通过全局数组$_session进行访问;如果已经存在,则将这个已经创建的会话变量载入以供用户使用。
<?php if(!empty($_SESSION['session_name')){ $myvalue=$_SESSION['session_name']; } ?>
上述程序,先判断用于存储用户名的Session会话变量是否为空,不为空时,将会话变量赋给一个变量$myvalue。
a-4、删除会话的方法主要有删除单个会话、删除多个会话和结束当前会话3种,下面分别介绍这三种。
(1)删除单个会话即删除单个会话变量,同数组的操作一样,直接注销$_SESSION数组的某个元素即可。
<?php unset($_SESSION['user']); ?>
使用unset()函数时,要注意$_SESSION
数组中元素不能省略,即不可以一次注销整个数组,这样会禁止整个会话的功能,如unset($_SESSION
)函数会将全局变量$_SESSION
销毁,而且没有办法将其恢复,用户也不能再注册$_SESSION
变量。如果要删除多个或全部会话,可采用下面的两种方法。
(2)删除多个会话即一次注销所有的会话变量,可以通过将一个空的数组赋值给$_SESSION来实现。
<?php $_SESSION=array(); ?>
(3)如果整个会话已经结束,首先应该注销所有的会话变量,然后使用session_destroy()函数清除结束当前的会话,并清空会话中的所有资源,彻底销毁Session。
<?php session_destroy(); ?>