[英]PHP sessions in two application
我有問題要問你。 我有兩個使用驗證碼的PHP項目,並將其寫入會話。 我的問題是,如果我啟動第一個應用程序,則將驗證碼保存到$_SESSION['code']
,然后啟動第二個應用程序,將驗證碼保存到同一變量,那么第一個值將被第二個覆蓋,或者PHP將創建兩個獨立會議?
通常,每個應用程序將覆蓋同一服務器上的會話變量。
為避免這種情況,您可以為會話命名空間或使用session_name
函數。
您可以通過設置$_SESSION['app1']['code']
和$_SESSION['app2']['code']
或使用會話抽象庫(例如Symfony或Zend Framework中的庫)來手動命名空間。
在每個應用程序中使用session_name
可能看起來像這樣:
//Other init stuff here
define('APPLICATION_ID', "MY_UNIQUE_ID_1");
session_name(APPLICATION_ID);
session_start();
您必須在每個應用程序的某些配置文件中更改唯一ID。 我在這里define
一個define
,以表明它並非憑空產生的。
另一種解決方案是設置一個cookie路徑 (在session_start()
之前)。
以我的經驗,如果您的兩個應用程序都在同一個虛擬目錄中,那么它將被覆蓋。 因此,如果您不想互相覆蓋,請使用其他會話變量。
問候
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.