关于会话处理
HTTP 是一种无状态的协议,说明每次请求的处理都与之前或之后的 请求无关,但是为了能够调整用户特有的行为和首选项,出现了一种在客户端存储少量信息(常称为cookie)的实践,但由于 cookie 大小的限制、所允许的 cookie 数量以及 cookie 的实现上的各种不一致,出现了另外一种解决方案:会话处理。
会话处理的实现方式是为每位网站访问者分配一个称之为会话 ID(SID)的唯一标识属性,然后将此 SID 与任意数量的数据关联。
开始会话
session_start();
创建会话变量
代码如下 | 复制代码 |
$_SESSION['username'] = “jason”; |
删除会话变量
代码如下 | 复制代码 |
unset($_SESSION['username']); |
简单的登入登出
代码如下 | 复制代码 |
$supervisor = "admin"; // 检查是否提交表单 exit; } } // 由用户销毁会话变量,登出 if (isset($_GET['logout'])) { unset($_SESSION['superlogin']); header("Location:index.php"); } |
假设将此文件命名为include.php,将其包含到要验证登入的页面即可,例如 index.php
代码如下 | 复制代码 |
require “include.php”; 欢迎进入 |
如此访问 index.php 页面时将进入登入页面,登录后显示 index.php 页面内容,这个过程一直持续到用户结束会话,如关闭浏览器或点击注销按钮,但是会话本身在PHP服务器有一个默认的生存期。
有效会话的持续时间由 php.ini 所控制,默认为1440秒,即24分钟
session.gc_maxlifetime = 1440
PS:本文是个范例,用简单的代码来做说明,实际应用中会采用更加复杂的控制机制。