一:准備工作:
位置:
- htdocs
- a目錄:
- sessiona.php
- b目錄
- sessionb.php
- c目錄
- sessionc.php
- a目錄:
------
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
- sessiona1.php
- a目錄
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.
可見 ,域名是從三級域名算起的, 如果二級域名相同,三級域名不同, 那么就算作是不同的主機.
