在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
位置:
------ 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.
--- 上面 是域名完全不同. 现在测试一下 二级域名相同, 三级域名不同的情况.
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.
可见 ,域名是从三级域名算起的, 如果二级域名相同,三级域名不同, 那么就算作是不同的主机.
|
2022-08-30
2022-08-17
2022-11-06
2022-08-18
2022-07-29
请发表评论