2010-05-23 24 views
7

PHP中可以編輯除當前用戶之外的其他用戶會話嗎?如果是這樣如何?在PHP中編輯另一個用戶會話

+0

當然,您可以手動命名會話,讓PHP完全訪問存儲會話的臨時文件夾,並破壞您網站的安全! – animuson 2010-05-23 17:00:55

+0

這樣做沒有意義,爲什麼你不想兩個用戶共享同一個會話?,每個用戶一個會話,這就是你所需要的, – Ben 2010-05-23 17:03:01

+1

@Ben:也許他希望他的管理會話可以被訪問他的每個人訪問網站沒有他們需要知道密碼? – animuson 2010-05-23 17:03:55

回答

10

有可能通過兩種方法來編輯在PHP中的另一個用戶會話:

  1. 1的方式是你必須得到您想要編輯會話的用戶的會話ID;

    session_id($SessionID); 
    
    // and then enter code your logic to change session data here; 
    
  2. 如果要存儲在數據庫中的會話數據,則這將是更容易直接在數據庫,該數據庫將更新用戶會話時,應用程序將再次請求數據來操作數據。

請記住,您可以玩用戶會話到任何級​​別,唯一需要的是SESSION_ID。 如果你贏得了比賽,

+0

使用'session_id()'訪問其他人的會話是否可能?我認爲這個函數只是用來改變特定用戶當前會話的會話ID。 – BoltClock 2010-05-23 17:03:49

+2

是的,有可能做到這一點,但唯一的辦法是將session_id()還原回當前用戶的實際session_id(),否則這將是一個大混亂。 所以你需要用以下方式編碼: - 備份你當前的用戶session_id - 初始化你想要改變數據的用戶的session_id會話。 - 更改數據的邏輯 - 將session_id重置爲您所採取備份的實際用戶會話ID。 我想這應該工作:) – Dharmavir 2010-05-23 17:17:51

3

它取決於服務器用於存儲會話數據的方法。 我想可能有幾種方法來存儲數據庫,服務器上的文件,memcache服務器。 所以你必須使用正確的方法。

無論如何,我已經做了5個月的網絡編程。 所以我不確定我在說什麼。