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();
?>

 

posted on 2018-02-22 19:49  啦噜噜  阅读(98)  评论(0编辑  收藏  举报