2011-04-30 78 views
2

我有一個關於php $ _SESSION的問題。

說我有一個用戶A進入index.php文件,它把一些信息,

$_SESSION['info'] = userA 

現在用戶B進入index.php文件,它把其他一些信息,

$_SESSION['info'] = userB 

現在在另一個test.php中,當我打電話時,它會得到什麼?

$info=$_SESSION['info'] 

userA或userB?

謝謝!

+0

該會話對於訪問該頁面的每個用戶都是唯一的。 – Prix 2011-04-30 05:32:57

+2

我不認爲這應該是一個downvote,這可能是一個初學者明顯的好奇心。 – 2011-04-30 05:36:43

+0

@Sandeepan Nath我完全同意你的看法。我不知道爲什麼老年人會很快對新的工作者產生負面影響。它勸阻他們。應該建議他們,而不是給予否定的。否定的投票應該是老年人 – 2011-04-30 05:39:57

回答

1

如果兩個用戶的會話相同,則用戶b將覆蓋用戶a的值。

如果兩個用戶的會話不同,您將獲得您登錄的用戶的值。

如果你沒有會話,那麼你什麼也得不到。

+1

會話將永遠不會對兩個用戶都是一樣的。那將是一場安全噩夢。 – Charles 2011-04-30 05:40:08

+0

@Charles在理論上是正確的,但如果兩個用戶在同一臺​​計算機上使用同一瀏覽器登錄,並且會話不因任何原因而被重置。在沒有看到代碼庫的情況下,不保證 – bumperbox 2011-04-30 05:45:06

+0

兩個人在一臺計算機上使用一個瀏覽器 - 同時 - 只會在一個用戶進行一次會話時顯示給PHP。你會有userA或userB,而不是某種涉及這兩個用戶的怪異wtfery。 – Charles 2011-04-30 05:47:30

3

輸出將與當前會話的用戶有關。

爲每個用戶創建不同的會話。

1

我親愛的會議是分開爲兩個用戶。對於用戶A,它有其獨立的副本和值,對於用戶B,它有它自己的。所以你不必擔心調音臺。

1

在服務器中爲每個用戶(使用不同的瀏覽器或計算機訪問)創建單獨會話,並且每個用戶都使用唯一的SESSION ID與每個用戶相關聯,這些會話在瀏覽器中存儲爲cookie或通過URL傳遞。因此,當用戶A從一個瀏覽器/計算機登錄時,唯一的SESSION ID將其與其存儲在服務器中的會話值相關聯,並且當用戶B登錄時,另一個SESSION ID將其與其自身的會話值相關聯。因此,儘管服務器在時間處將會話值保留在內存中,但用戶只能看到他們自己的SESSION值。沒有混淆。