一、什么是Session
- Session从用户访问页面开始,到断开与网站连接为止,形成一个会话的生命周期。在会话期间,分配客户唯一的一个SessionID,用来标识当前用户,与其他用户进行区分。
- Session会话时,SessionID会分别保存在客户端和服务器端两个位置,对于客户端使用临时的Cookie保存(Cookie名称为PHPSESSID)或者通过URL字符串传递,服务器端也以文本文件形式保存在指定的Session目录中。
- Session通过ID接受每一个访问请求,从而识别当前用户、跟踪和保持用户具体资料,以及Session变量(在Session活动期间,可在Session中存储数字或文字资料),比如session_name等等,这些变量信息保存在服务器端。
- SessionID可以作为会话信息保存到数据库中,进行Session持久化,这样可以跟踪每个用户的登陆次数、在线与否、在线时间等。
二、使用会话的基本步骤:
- 开始会话
- session_start() 开始一个会话或者返回已经存在的会话。
- 注册会话变量
- PHP5使用$_SESSION[‘xxx’]=xxx 注册SESSION全局变量。和GET,POST,COOKIE的使用方法相似。
- 例子:
$_SESSION['username']="tangcaiye";
- 使用会话变量
- 例子:
echo $_SESSION['username'];
- 注销变量并销毁会话
- 注销例子:
-
例子:
session_start();
unset($_SESSION['username']); - 销毁会话:
- session_unset()函数清除存储在当前会话中的所有变量,它能有效地将会话重置为创建时的状态。
- session_destroy()函数从存储机制中完全删除会话,使当前会话失效。
三、cookie和session的区别:
- cookie和session都可以暂时保存多个页面中使用的变量,但是它们有本质的差别:
- cookie存放在客户端浏览器中;
- session保存在服务器上;
- 它们之间的联系是session ID 一般保存在cookie中,或者放在URL上。