簡體   English   中英

兩個應用程序中的PHP會話

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM