$is_vip = $_GET['is_vip'] ? $_GET['is_vip'] : 0;
$_SESSION['is_vip'] = $is_vip;
.........
var_dump($_SESSION['is_vip']);
如果2個使用者(或者很多人)同時訪問,一個(一半)訪問不帶?is_vip=1的,一個(一半)訪問帶?is_vip=1, 那麼這2個人最終列印出來的結果會一樣嗎?
自己的理解是SESSION是全域的,有沒有可能當帶is_vip=1的使用者在列印出來之前,不帶is_vip=1的使用者訪問頁面將SESSION['is_vip']的值設為0,這樣2個人最終列印出來的都是0或者1(相反的情況)
回複內容:
$is_vip = $_GET['is_vip'] ? $_GET['is_vip'] : 0;
$_SESSION['is_vip'] = $is_vip;
.........
var_dump($_SESSION['is_vip']);
如果2個使用者(或者很多人)同時訪問,一個(一半)訪問不帶?is_vip=1的,一個(一半)訪問帶?is_vip=1, 那麼這2個人最終列印出來的結果會一樣嗎?
自己的理解是SESSION是全域的,有沒有可能當帶is_vip=1的使用者在列印出來之前,不帶is_vip=1的使用者訪問頁面將SESSION['is_vip']的值設為0,這樣2個人最終列印出來的都是0或者1(相反的情況)
每個使用者都有對應獨立的session_id,你登入了sf.gg,伺服器會產生一個session_id並將它通過cookie的方式傳遞到用戶端,每次訪問都會帶上這個cookie,所以是唯一的。
PHP預設將session以檔案的形式儲存在指定路徑中。
參考:PHP session原理
SESSION不是全域的,每個瀏覽器使用者都對應著不同的SESSION,所以你提到的兩個使用者他們是互相不影響的。
session是每個使用者的私人資料,session常用的用途是在裡面儲存的使用者登入相關的資訊,如果共用了豈不是亂了,管理員和普通使用者資訊串在一起,真是天下大亂了。