• 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");
    ?>
  • 相关阅读:
    swoole 的 go function 是什么
    MySQL grant之后要不要跟上 flush privileges
    操作数据库
    APP端异常情况
    评论列表优化联表问题
    tp5修改数据前过滤
    字典
    if语句
    【整理】android事件传递机制
    Linux常用操作
  • 原文地址:https://www.cnblogs.com/sunxiaoyan/p/9266886.html
Copyright © 2020-2023  润新知