cookie和session

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

  1. 用于Cookie存储在客户端,不能直接修改和删除cookie
  2. 要删除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");
?>
原文地址:https://www.cnblogs.com/sunxiaoyan/p/9266886.html