1.HTTP是一种无状态技术,无法跟踪 一个用户或者记录应用程序中的某个页面传递到下一个页面的数据。
2.PHP有两种用以跟踪数据的主要方法:cookie和session
Cookie
1.什么是Cookie?
Cookie是一种由服务器发送给客户端的片段信息,存储在客户端浏览器的内存或者硬盘上。
2.Cookie的工作原理
3.创建Cookie bool setcookie();
代码示例:
<?php $value="xxxxxx"; //通过setcookie来设置cookie setcookie("myCookie",$value); echo "<br/>"; if(isset($_COOKIE["myCookie"])){ echo "Cookie的值".$_COOKIE["myCookie"]."<br/>"; }else { echo "目前没有cookie"."<br/>"; } ?>
第一次运行效果:
第二次运行效果:刷新之后
4.读取Cookie
- PHP使用全局数组$_COOKIE变量用于读取cookie的值
- 读取之前常用isset()函数判断cookie是否存在
5.修改和删除cookie
- 用于Cookie存储在客户端,不能直接修改和删除cookie
- 要删除cookie需要确保它的失效期是在过去,才能出发浏览器的删除机制
- 通过给cookie赋新值替换旧版本Cookie的办法来修改(修改=赋新值)
- 可通过设置Cookie立即过期的办法来删除Cookie(删除=设置过期)
代码示例:
<?php //设置它的失效期来删除cookie setcookie("myCookie","hello",time()-10); if(isset($_COOKIE["myCookie"])){ echo "Cookie的值".$_COOKIE["myCookie"]."<br/>"; }else { echo "目前没有cookie"."<br/>"; } ?>
运行结果:
无论刷新多少次都是目前没有cookie
6.浏览器的Cookie的限制
- 最多允许存储300个cookie文件
- 每个Cookie文件支持最大容量是4KB,每个域名最多支持20个cookie
- 如果达到限制时,浏览器会自动随即删除cookie文件
Session
1.Session保存的数据在php脚本中是以变量的形式创建的,创建的会话变量在生命周期(20分钟)中可以被跨页的请求中引用。
2.session是存储在服务器端的,相对安全,且没有存储长度的限制
3.创建会话:session_start,,注册和读取使用$_SESSION数组变量
代码示例:
session1.php
<?php echo session_start(); $_SESSION['name']="zhangsan"; $_SESSION['age']="20" ?>
session1_read.php
<?php session_start(); echo isset($_SESSION['name']); echo "姓名:".$_SESSION['name']."<br/>"; echo "年龄:".$_SESSION['age']."<br/>"; ?>
HTTP头处理
1.常用的处理方式:
重定向:
<?php header("location:http://{$_SERVER['SERVER_NAME']}:8080/PHP07/cookie.php"); exit(); ?>
说明:
- 需要一个绝对地址的URL最为Location
- 需要exit()
固定的。
2.文件的下载
<?php //直接输出一个pdf文件,Content-type时输出文件;类型 //header('Content-type:application/pdf'); header('Content-Disposition:attachment;filename="222.pdf"'); //readfile函数读取服务器指定文件 readfile("111.pdf"); ?>
3.发送HTTP状态码
<?php header("http/1.1 404"); ?>