zoukankan      html  css  js  c++  java
  • PHP之cookie和session

    cookie和session技术
    登录凭证校验分析


      判断是否具有登录凭证?
        如果管理员账户密码合法,分配浏览器一个登录凭证,在向后台首页请求时,携带凭证到服务器,服务器php程序判断是否登录凭证。
      凭证是如何实现的?
        就是特定的数据,存在就是有凭证,否则就是没有凭证。

      凭证如何储存?
        如果储存到变量中:不行,变量声明周期结束,会被自动释放。
        如果储存到常量中:不行,常量生命周期结束,会被自动释放。
        如果储存到数据库中:不行,存储在数据库中,脚本周期结束了,不会消失,但是浏览器不能区分是那个浏览器登录的,不能区分该凭证是属于那个一个浏览器。

    COOKIE SESSION 被称作会话技术。
        会话技术:在同一台浏览器对某台服务器进行多次请求周期内,用来持久性存储数据的技术被称为会话技术。

        1.区分浏览器。 2.多次请求数据不会丢失。

    为什么会有会话技术?
       B/S架构,基于HTTP协议,特点是无状态,指的是不能储存任意一次的数据请求。

    COOKIE技术
      就是将会话数据,储存在浏览器端的一种技术。
    特点:
      1.服务器负责储存数据到浏览器端。
      2.浏览器在每次请求时,将记录下来的数据,携带到服务器端。
    图示:

    使用:
      设置cookie数据
      setcookie(key, value)
      setcookie('name','admin');
      设置指令时,是服务器向浏览器响应时候,把携带的数据发送到浏览器端。

    图示:
    获取cookie数据
      $_COOKIE超全局数组变量。在服务器接收到浏览器请求时,php程序,会接收到所有的cookie数据,整理到$_COOKIE数组中。

    1属性
    1.有效期
      默认:浏览器关闭时,cookie失效。该有效期cookie被称为临时cookie,也就会话cookie。

      通过setcookie(key, value, 有效期=0)的第三个参数完成设置,达到控制失效时间点。
    有效的表示方式为时间戳:time()可以获取当前时间戳。
    一旦设置有效期,只要设置的时间过期,就会立即失效cookie,与浏览器关闭无关。该cookie就称为持久cookie。

      如何判断cookie是否失效?(浏览器 or 服务器)
    在设置cookie时,告知浏览器,该cookie的有效期。浏览器发出请求时候,判断cookie是否失效。也同时发生设置cookie时的相应时间。

    有效期设置:time()+N

      time()-1 :删除cookie的通用做法。可以设置一个值 ,表示永久不过期。PHP_INT_MAX: 表示永久不过气。

    购物车网站买东西 购物车典型实现:
      将商品放入到购物车:
        未登录:同一台浏览器可以记录购买物品,基于浏览器。
        已登录:同一个用户,记录购买物品。基于数据库用户。


    2.有效路径
      url路径:cookie仅仅在当前路径,和后代路径有效。

    3.有效域名:
      默认的cookie仅仅在当前域名下有效。
      可以通过使用第五个参数的形式,进行所在一级域名设置。


    4.secure,是否安全连接发送到服务器
      http:
        https:加密之后的http
        如果将cookie设置了该属性,那么在浏览器向服务器发送请求,如果发送了非https请求,则不发送该cookie。


    5.HTTPonly 是否仅仅在http请求时所使用

      储存在浏览器端的cookie,可以当作浏览器脚本js,所获取到。Document.cookie.


    tips:cookie数据仅仅支持字符串类型。cookie的key,支持数组的写法。


    Session技术
      不同于cookie技术,将会话数据储存在服务器端。
      如何区分会话数据属于那台浏览器?
        1.将不同会话的session数据分别储存,存在session数据区。
        2.为每一个数据区,设置一个唯一的标示。
        3.将唯一标示,分配到浏览器端,浏览器请求携带凭证。

    图示:

    session技术,基于cookie技术。session的标示session_id储存在浏览器cookie中。

      对比cookie:
        会话数据本身,安全性较高。
        请求时携带的数据量,较少。

      开启session,php核心session功能生成唯一标示,分配给浏览器,储存在数据区。
    语法:
      session_start();


    管理session数据
      $_SESSION完成所有的功能。


    增删改查
      $_SESSION['name'] = 'admin';
      $_SESSION['pwd'] = '123';
    //删除
      unset($_SESSION['name']);
      $_SESSION['pwd'] = 'abc';
    //查询
      $var_dump($_SESSION['name']);

    tips:清空session操作,删除所有的session数据:$_SESSION=array();

    有效期:
    session在浏览器关闭时失效。

  • 相关阅读:
    分梨
    18岁生日
    马的移动
    摆积木
    杭电2093考试排名
    栈的应用——四则运算表达式求值
    用指针实现对二维数组元素的访问
    用多种方法访问字符数组元素
    fread()函数和fwrite()函数进行文件操作
    hdu-1431 素数回文
  • 原文地址:https://www.cnblogs.com/sharecorner/p/6142133.html
Copyright © 2011-2022 走看看