• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

phpsession(二):同样的代码,不同域名访问对session存储的影响.

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 

位置:

  • htdocs
    • a目录:
      • sessiona.php
    • b目录
      • sessionb.php
    • c目录
      • sessionc.php

------

sessiona.php

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

 

-------

sessionb.php

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

--------

sessionc.php

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

 

 

-----

a,b,c 目录分别设置了 网址. www.a.com  , www.b.com , www.c.com

 

-------

二:访问:

2-1: localhost方式访问:

1. 访问 localhost/a/sessiona.php

 

2.访问 localhost/b/sessionb.php

 

 3.访问localhost/c/sessionc.php

 

 

 

 4. 查看客户端 cookie:

 

 

结论:

上面域名都是 localhost , 虽然在 不同的目录 下 设置 session变量. 但是 只有一个session文件.

 可见,同一个domain 下 的所有session 都保存在 一个文件中, 不能你在那个脚本中设置session

同名的session会不断更新,  $_SESSION["test"]  的值 从 this is a --> this is b  --->this is c.

 

补充: 上面说的不完整. 应该是如果 用同一个 浏览器(具体某个人的电脑上的某个浏览器) 访问一个域名, 那么这个域名下 所有 的 session变量(这个域名下不同脚本设置的session变量) 都会

        储存在一个session文件中.

   session是区分浏览器(这个指得是不只是浏览器品牌.) ,

   例如有浏览器 : 360 ,搜狗.

   不是说网站下 只有两个session文件 ,

       而是说 小明的电脑上 有 360 ,搜狗;   小花的电脑上有 360 ; 那么小明分别用 360 ,搜狗访问网站 ,小花 用 360 访问网站, 那么 网站的服务器中就会有三个 session文件.

 

 

 2-2: 不同域名的访问:

清空原来的所有的session存储文件:

 

1. 访问www.a.com/sessiona.php

session:

 

----

cookie:

 

 

 2. 访问 www.b.com/sessionb.php

 

---

session:

 服务器端多了一个 存储 www.b.com 中的所有session的文件.

 ----

cookie:

当前  www.b.com 只有一个cookie .  名字是 PHPSESSID

 

-----

3.访问   www.c.com/sessionc.php

--

session:

服务器端 又多了一个 session文件.

 

---

cookie:

 

 ----

 

结论:同样的代码只是 访问的url不同 ,产生的session也就不同.

上面我们用了三个域名访问,  在服务器端 就生成了 三个文件 ,分别保存 这三个 域名下的 所有 session.

 

---

上面 是域名完全不同.

现在测试一下 二级域名相同, 三级域名不同的情况.

  • htdocs
    • a目录
      • sessiona.php
    • a1目录
      • sessiona1.php

         

a目录 :  www.a.com

a1目录: a1.a.com

 

------

sessiona.php

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

 

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

sessiona1.php

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

----------

1:访问:  www.a.com/sessiona.php

 

 ----------

2. 访问 a1.a.com

 

 

 

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

 

可见, 服务器端总共有两个 session文件.    www.a.com 和  a1.a.com 是不同的 domain.

 

可见 ,域名是从三级域名算起的, 如果二级域名相同,三级域名不同, 那么就算作是不同的主机.

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
写了个TP5下PHP和手机端通信的API接口校验发布时间:2022-07-10
下一篇:
ubuntu下安装phpopenssl扩展发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap