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

 

session的设置:

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

 

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\tmp"

 

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

   

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:

 

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

 

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