两个应用程序中的PHP会话

时间:2012-06-14 07:53:32

标签: php session

我对你有疑问。我有两个使用验证码的PHP项目,并将其写入会话。我的问题是,如果我点击第一个应用程序,将验证码保存到$_SESSION['code']然后我启动第二个应用程序,我将验证码保存到同一个变量,然后第一个值将被第二个覆盖,或者PHP将创建两个独立的会话?

3 个答案:

答案 0 :(得分: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来表明它不是凭空而来的。

答案 1 :(得分:0)

另一种解决方案是set a cookie pathsession_start()之前)。

答案 2 :(得分:0)

在我的经验中,如果你的两个应用程序都在同一个虚拟目录上,那么它将被覆盖。 因此,如果您不想互相覆盖,请使用不同的会话变量。

此致