2014-06-12 92 views
2

我有一個基於php的軟件,使用php會話登錄系統。我需要在同一域中的這樣一個子目錄複製此PHP軟件:PHP會話:隔離子目錄登錄系統

  • /根/ phpsoftware1
  • /根/ phpsoftware1/phpsoftware2

的問題是,如果我登錄在php軟件1中,然後嘗試訪問php軟件2,當htere不是時,系統識別有效的會話。

是否可以隔離兩個目錄,以便對軟件1有效的會話對軟件2無效,反之亦然?

+1

你不能設置['session_save_path'](http://php.net/manual/en/function.session-save-path.php)到phpsoftware2中的不同位置嗎? – kero

+0

一個簡單的技巧就是爲兩個目錄的會話使用不同的變量名稱。你可以做'$ _SESSION [「authorized_root」]'VS'$ _SESSION [「authorized_sub」]'等 –

回答

3

session_name($somename)設置兩個不同的會話名稱。這需要在兩個地方都會調用session_start()session_register()之前調用,並將設置客戶端cookie中使用的會話的名稱(否則,默認爲PHPSESSID)。

+0

這個解決方案工作!謝謝 – AleCat83

0

在一臺服務器上,不能爲同一客戶端設置兩個不同的會話。 PHP會話存儲在服務器上的每個客戶端(瀏覽器或任何應用程序發出請求)(請參閱:where does session save?)。

爲了達到你的要求是什麼,你可以任取手帕웃Panky的方式(自提你的問題的意見),或一旦切入點/root/phpsoftware/phpsoftware2已經達成,unset()您的會話密鑰,所以一個新的可創建(注意,這也將殺死會話/root/phpsoftware1,所以我寧願採取Hanky웃Panky的方法)

希望它有所幫助。勒米知道你是否需要更詳細的闡述。