一、什么是session
session和cookie功能类似,都是为了维持会话,也就是记住客户端用户的信息。
二、session的特点
1.session保存的用户信息保存在服务器端而不是客户端浏览器上。
2.session仍然需要在客户端留下一个唯一标记sessionID,用户的信息保存在服务器。有两种方式基于cookie或URL
三、基于cookie的session的使用
1.session的配置
注册session_start(); ---> 基于cookie的session需要在脚本的开头即在HTML之前
session_start(); ---> 开启session后,当用户第一次访问网站时,服务器会默认向浏览器发送一个名为sessionid的cookie信息
即向浏览器发送cookie的步骤已经被省略了
2.在脚本中使用session的值: 首先开启session_start(); 之后便可以在其他脚本中定义或使用session值
session_start();
$name = $_SESSION[‘name‘];
$_SESSION[‘age‘] = 20;
echo $_SESSION[‘fuck‘];
3.注销session
//开启session session_start(); //删除浏览器上保留的sessionID if (isset($_COOKIE[session_name()])){ setcookie(session_name(),‘‘,time()-3600,‘/‘); { //清空全局session变量 $_SESSION = array(); //清除服务器上保留的该session文件 session_destroy();
四、基于URL的session的使用
1.开启session
session_url();
session_start();
2.由于sessionID是通过URL传递的,所以在网页所有的需要用户信息的链接后面都要加上 ?sid=<?php echo session_id(); ?>
3.删除session信息,只需删除服务器端的即可
五、设置session的自动选择基于cookie还是基于URL
1.在Apache中找到配置 session.use_trans_sid = 1 //判断浏览器是否开启cookie,若没有则给脚本中所有的连接或表单提交自动加上带有session_id()的后缀
2.使用时开启session_start();
3.在脚本中若有输出成javascript连接的形式,则不能跳转,需要在链接后加SID