1,session可以保存任意类型的数据。因为是保存在服务器上的(即已经序列化)。
2,session运行机制
page1.php
<?php
session_start(); //已经开启了session,相当于已经读取了session信息
$_SESSION['favcolor'] = 'green';
$_SESSION['animal'] = 'cat';
$_SESSION['time'] = time();
// Works if session cookie was accepted
echo '<br /><a href="page2.php">page 2</a>';
?>
page2.php
session_start声明$_SESSION变量,为 $_SESSION 赋值-> 操作 $_SESSION变量->将 $_SESSION内的数据写入数据空间,并释放变量。
删除$_SESSION不能unset ,可以将其置为空: $_SESSION = array();
删除当前 $_SESSION的数据文件 session_destory(),在默认系统路径下C:windos /Temp下。 可以在浏览器中找到该目录
删除浏览器内利用cookie技术,删除sessionID
setCookie('PHPSESSID',time()-1);
三个一起使用,即可完全删除session
3,周期可能出现不一致的情况。
PHP的session机制
分类: 日志 2013-05-06 01:22 192人阅读 评论(0) 收藏 举报
问题 :
1,如何确定分配sessionID
在session_start的时候。
两种情况,一是浏览器带了sessionID 请求,带了直接使用,没有带,则生成一个sessionID,并生成一个$_SESSION数组
2,如何形成session存储空间
使用sessionID定位服务器上的数据空间
3,如何保存数据到存储空间
将空间内的数据读取出来,反序列化后放入到$_SESSION数据内。
4,如何读取数据
在脚本结束后,将$_SESSION数据序列化写到数据空间内。
5,如何管理数据
即操作$_SESSION数组。
session重写机制:当session运行到一定的周期会自动调用以下的方法。并注意每个方法的该有的不同的参数。
<?php
function open() {
echo 'close';
}
function close() {
echo 'close';
}
function read() {
echo 'read';
}
function write() {
echo 'write';
}
function destroy() {
echo 'destroy'; //当用户调用session_destory()后执行
}
function gc() {
echo 'gc'; //当脚本执行完之后
}
session_set_save_handler('open','close','read','write','destroy','gc');
session_start();//先设置再开启
?>
有关session使用中的问题,大家还可以阅读下这篇文章:http://www.jb200.com/article/5177.html