上一篇博客介绍了关于cookie的流程,下面是一个更为重要的:会话控制(Session),废话不多说,直接上干货:
FOR EXAMPLE:
解释:
1.当我们首次访问服务器时,会生成一个唯一的session_id,然会我们可以为这个用户设置一些session信息,用户唯一标示这个用户,并将session_id返回到客户端
2.当我们再一次进行访问时,浏览器会自动将session_id一起进行提交,服务器用户判断,然后根据session_id,去查找,并将查到的信息保存在$_SESSION数组里,
3,session只保存在服务器端,在客户端保存的只是session_id
下面有一个小的demo:
<?php
header("content-type:text/html;charset=utf-8");
//开启session
//在次之前不要用任何输出
session_start();//session_start()这个函数必须位于<html>标签之前
/**
session_start()这个函数首先会检查当前是否存在一个会话,如果不存在,则会创建一个全新的会话,
并且这个会话可以访问超全局变量$_SESSION数组,如果存在,函数会直接使用这个会话,加载已经注册过的会话变量,然后使用
**/
$_SESSION["aa"]="1111111111";
$_SESSION["bb"]="2222222222";
//将session_id输出
echo session_id()."<br/>";
?>
<?php
header("content-type:text/html;charset=utf-8");
/**
session_start()这个函数首先会检查当前是否存在一个会话,如果不存在,则会创建一个全新的会话,
并且这个会话可以访问超全局变量$_SESSION数组,如果存在,函数会直接使用这个会话,加载已经注册过的会话变量,然后使用
**/
session_start();
print_r($_SESSION);
//session_name() PHPSESSID
echo (session_name()."<br/>");
echo (session_id()."<br/>");
?>
<?php
//删除session
header("content-type:text/html;charset=utf-8");//header()函数前面不可以有输出
//删除也需要开启session
session_start();
//清空session值,或者我们可以用unset
$_SESSION=array();
//最后删除客户端的相关cookie
//首先判断cookie是否存在(即删除客户端在cookie中的session_id)
if(isset($_COOKIE[session_name()])){
//在php的配置文件我们制定了cookie的路径,有关于session的
//session.cookie_path = /
setcookie(session_name(),'',time()-3600,"/");
}
//彻底删除session(会话控制)
session_destroy();
?>
ps:自己要动手,你会收获很多