PHP

PHP会话控制

PHP session control

Posted by Lv Hui on June 15, 2014

cookie储存在客户端,如果不设置保存时间,会在浏览器关掉的时候 就自动清理掉,大小一般在4kb左右,每一个浏览器独立保存

1
2
3
//生成cookie
setcookie(名字,值,过期时间,服务器端有效路径);
setcookie('webbname','coolerk',time()+3600*24*7,'/');

cookie存储数组或对象

通过序列化来实现

1
2
3
4
5
6
//序列化数组
$arr=serialize(array(1,2,3,4));
setcookie('num',$arr);
//反序列化
unserialize($arr);

session

在开始会话的时候,会分配给用户一个sessionID,用来标识当前 用户,与其他用户进行区分

开启会话

session_start()执行时会搜索客户端有无session_id,如果有会 根据session_id找到session数据,如果没有将在服务器写入SESSION 文件,并在客户端存入对应的session_id

1
2
3
4
5
session_start();
//存入信息
$_SESSION['num']=1;
//获取信息
$a=$_SESSION['num'];

session_id相关信息

1
2
3
4
5
6
7
//获取设置session_id
session_id();
//获取设置session_name
session_name();
延长session_id在cookie在客户端存储时间
session_start();
setcookie(session_name(),session_id(),time()+3600*24*7,'/');

清除session

1
2
3
4
5
6
7
8
9
10
11
//删除session变量
unset($_SESSION('name'));
//删除所有session变量,不删除session文件
$_SESSION=array();
//释放当前内存中创建的所有session变量,但不删除session文件和session_id
session_unset();
//删除当前用户对应的session文件,释放session_id,但不删除session变量内容
session_destroy();
//释放用户的所有资源
session_unset();
session_destroy();

更改session保存路径

会话数据的路径,如果指定路径,将数据保存到路径中

1
session_save_path();