2012-06-14 64 views
0

我有問題給你。我有兩個使用驗證碼的PHP項目,並將它寫入會話。我的問題是,如果我火了第一個應用程序,可以節省驗證碼到$_SESSION['code'],然後我開始在那裏我可以節省驗證碼到同一個變量,那麼第一個值將被第二覆蓋第二個應用程序,或PHP將創建兩個獨立的會議?PHP會議

+0

這兩個應用程序在同一臺服務器上嗎? – dpk2442

+0

是的,有不同webistes連接到PHP腳本,但連接到同一臺服務器。 – Krystian

+0

它在同一個域上嗎? – PeeHaa

回答

1

通常情況下,每個應用程序將覆蓋在同一服務器上的會話變量。

爲了避免這種情況,您可以命名空間的會話或使用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來表明它不是憑空而來的。

+0

你能告訴我一些例子如何在我目前的情況下使用session_name嗎? – Krystian

+0

添加了一個示例。 – chiborg

0

在我experieance,如果這兩個應用程序是相同的虛擬目錄,然後它會會自動覆蓋。 所以如果你不想相互覆蓋使用不同的會話變量。

Regards