PHP会话控制技术
特点:http是不能维持会话信息的,无状态的
会话控制技术
维持会话信息,控制会话状态
会话控制的思想是允许服务器跟踪同一个客户端做出的连续请求
会话跟踪的方式
用户请求一个页面以后再请求另外一个页面时候,需要让服务器知道这是一个用户,共有三种数据传递方式
1,超链接或者header()函数等重定向方式
2,使用cookie将用户的信息状态,存放在客户端的计算机中
3,使用session将用户的信息状态,存放在服务器中
会话控制的使用,两大类
1,cookie
cookie是在http协议下,服务或脚本维护客户端信息的一种方式
cookie是一种由服务器发给客户端的片段信息,存储在客户端浏览器的内存或者硬盘上,常用于保存个性化设置,个人偏好记录等,当用户访问服务器是,服务器可以设置和访问cookie信息。
cookie保存在客户端,通常是ie或者浏览器的cookie临时文件中,可以手动删除,如果文件太多,浏览器也会自动对他删除。
缺点:不能保存私密性太高的
如何设置cookie?
1,添加cookie
setcookie($name,$value,$expire,$path,$domain);
$name:cookie的值
$value:该cookie的值
$expire:该cookie的过期时间,过期后,该cookie会自动删除,如果不指定时间,关闭浏览器就会销毁
$path:有效路径,该cookie只在该路径下有效,可以访问,没有指定,当前文件路径
$domain 有效域名,该cookie只在该域名下有效,可以访问
注意:$setcookie前面不允许有任何的输出
2,修改cookie
setcookie($name,$value,$expire,$path,$domain);
重新设置cookie
3,查询cookie
使用超全局数组$_COOKIE[username];
4,删除cookie
特点:http是不能维持会话信息的,无状态的
会话控制技术
维持会话信息,控制会话状态
会话控制的思想是允许服务器跟踪同一个客户端做出的连续请求
会话跟踪的方式
用户请求一个页面以后再请求另外一个页面时候,需要让服务器知道这是一个用户,共有三种数据传递方式
1,超链接或者header()函数等重定向方式
2,使用cookie将用户的信息状态,存放在客户端的计算机中
3,使用session将用户的信息状态,存放在服务器中
会话控制的使用,两大类
1,cookie
cookie是在http协议下,服务或脚本维护客户端信息的一种方式
cookie是一种由服务器发给客户端的片段信息,存储在客户端浏览器的内存或者硬盘上,常用于保存个性化设置,个人偏好记录等,当用户访问服务器是,服务器可以设置和访问cookie信息。
cookie保存在客户端,通常是ie或者浏览器的cookie临时文件中,可以手动删除,如果文件太多,浏览器也会自动对他删除。
缺点:不能保存私密性太高的
如何设置cookie?
1,添加cookie
setcookie($name,$value,$expire,$path,$domain);
$name:cookie的值
$value:该cookie的值
$expire:该cookie的过期时间,过期后,该cookie会自动删除,如果不指定时间,关闭浏览器就会销毁
$path:有效路径,该cookie只在该路径下有效,可以访问,没有指定,当前文件路径
$domain 有效域名,该cookie只在该域名下有效,可以访问
注意:$setcookie前面不允许有任何的输出
2,修改cookie
setcookie($name,$value,$expire,$path,$domain);
重新设置cookie
3,查询cookie
使用超全局数组$_COOKIE[username];
4,删除cookie
setcookie("username".'',time()-3600,"/");
代码部分:
<?php
header("Content-type: text/html; charset=utf-8");
if(empty($_COOKIE['username'])){
header('location:1.php');
}else{
echo "欢迎你回来";
header('location:3.php');
}
上面代码可以判断客户端是否有COOKIE,如果有会跳转个人列表,如果没有会跳转登录页。
<?php
header("Content-type: text/html; charset=utf-8");
?>
<html>
<form action="2.php" method="post">
用户名<input type="text" name="username">
密码<input type="text" name="password">
<input type="submit" value="go">
</form>
</html>
上面是登录页面
<?php
header("Content-type: text/html; charset=utf-8");
$username=$_POST['username'];
$password=$_POST['password'];
if($username=='admin' && $password=='123'){
setcookie('username',$username,time()+3600,"/");
echo "<a href='3.php'>个人中心</a>";
echo "登录成功";else{
echo "登录失败";
}
接收用户信息
<?php
header("Content-type: text/html; charset=utf-8");
echo "你好".$_COOKIE['username']."<a href='4.php'>退出(删除cookie)</a>";
// var_dump($_COOKIE);
在cookie中读取数组,取出用户名
<?php
date_default_timezone_set("PRC");
// setcookie("username".'',time()-3600,"/");
setcookie('username','',time()-3600,"/");
上面是注销cookie。