• php ,session 详解.


    session是根据php.ini中的配置, 存储在 服务器端 ; 生成的sessionId ,也是根据 php.ini 的配置 存储在 客户端cookie中.

    session的设置:

    • 存储方式:session.save_handler=files 文件
    • 存储路径(服务器中):session.save_path="D:xampp mp"

    sessionID(存储于cookie中, 浏览器上):

    • 是否将sessionId存储于cookie中: session.use_cookies=1
    • 是否仅使用cookie存储sessionId: session.use_only_cookies=1  .(还可以自动添加在url上)
    • 存储sessionId的cookie的名字: session.name=PHPSESSID
    • session是否自动加载: session.auto_start=0 (自动加载就不需要 session_start, 最好不开启自动加载)
    • 存储sessionId的cookie的生存时间: session.cookie_lifetime=0
    • 存储sessionId的cookie的url路径: session.cookie_path=/
    • 存储sessionId的cookie的域名:  session.cookie_domain=
    • 存储sessionId的cookie,是否仅是http访问:  session.cookie_httponly=

    ----

    一:准备工作:

    • 目录a
      • session.php
      • getSession.php
      • test目录:
        • session1_1.php
        • session1_2.php
        • getSession1_1.php

    ----------

    1.session.php

    1 <?php
    2 
    3 session_start();
    4 $_SESSION["test"] = "this is a test";
    5 
    6 
    7  ?>

    ------

    2.getSession.php

     1 <?php
     2 
     3 session_start();
     4 echo "<pre>";
     5 echo '顶层';
     6 
     7 var_dump($_SESSION);
     8 
     9 
    10  ?>

    ----------

    3.session1_1.php

    1 <?php
    2 session_start();
    3 $_SESSION["test1_1"] = "this is test1_1";
    4 unset($_SESSION["test2"]);
    5 
    6  ?>

    --------

    4.session1_2.php

    1 <?php
    2 ini_set('session.cookie_path', '/test/')
    3 session_start();
    4 $_SESSION["test1_2"] = "this is test1_2";
    5 
    6  ?>

    --------

    5.getSession1_1.php

    1 <?php
    2 
    3 session_start();
    4 echo "<pre>";
    5 echo "www.a.com/test/目录下";
    6 var_dump($_SESSION);
    7  ?>

    二.操作1

    1. 先后 访问.   www.a.com/session.php 和 www.a.com/test/session1_1.php

    2.访问 www.a.com/getSession.php

       www.a.com/session.php  和 www.a.com/test/session1_1.php 中设置的 变量都可以获取.

    3.访问 www.a.com/test/getSession1_1.php

         www.a.com/session.php  和  www.a.com/test/session1_1.php 中 设置的变量 都可以访问到.

    4. 查看. 服务器端的session保存路径: session.save_path="D:xampp mp"

     

        打开这个序列化的文件,查看:

       

    test|s:14:"this is a test";test1_1|s:15:"this is test1_1";

    我们在不同的目录下,设置了两次 session, 当时 服务器端保存session的文件 只有一个.

    5. 查看 浏览器中 ,保存sessionId的 cookie

     三:操作3.

    1. 在 操作二的基础上, 继续 访问 www.a.com/test/session1_2.php

     2.访问www.a.com/getSession.php

     3.访问 www.a.com/test/getSession1_1.php

    4. 服务器端存储的session.

     

       文件名没有变化 ,修改时间 从 14:03 变为 14:16 .

      打开观察:

    test|s:14:"this is a test";test1_1|s:15:"this is test1_1";test1_2|s:15:"this is test1_2";

      增加了 test1_2 .

    5. 查看 浏览器端cookie:

     

       同操作二中的时间 ,没有任何变化.

    ------------------------------

  • 相关阅读:
    伪类和伪元素的区别, 总结的很好, 直接看结论.
    进制闲谈
    遇到的问题&思考
    PHP中include引用导致不能再次相对引用文件的一个小问题
    ECharts饼图试玩
    不该迷茫的时候迷茫
    [5]火车票接口整理
    [4]xlongwei工具类
    [3]天行新闻
    [2]新闻
  • 原文地址:https://www.cnblogs.com/cbza/p/6861207.html
Copyright © 2020-2023  润新知