两个应用程序中的PHP会话

两个应用程序中的PHP会话,php,session,Php,Session,我有个问题要问你。我有两个PHP项目使用captcha,并将其写入会话。我的问题是,如果我启动第一个应用程序,将captcha保存到$\u SESSION['code'],然后启动第二个应用程序,将captcha保存到同一个变量,那么第一个值将被第二个值覆盖,或者PHP将创建两个独立的会话?正常情况下,每个应用程序将覆盖同一服务器上的会话变量 为了避免这种情况,您可以为会话命名名称空间或使用session\u name函数 您可以通过设置$\u SESSION['app1']['code']和$

我有个问题要问你。我有两个PHP项目使用captcha,并将其写入会话。我的问题是,如果我启动第一个应用程序,将captcha保存到
$\u SESSION['code']
,然后启动第二个应用程序,将captcha保存到同一个变量,那么第一个值将被第二个值覆盖,或者PHP将创建两个独立的会话?

正常情况下,每个应用程序将覆盖同一服务器上的会话变量

为了避免这种情况,您可以为会话命名名称空间或使用
session\u name
函数

您可以通过设置
$\u SESSION['app1']['code']
$\u SESSION['app2']['code']
或使用类似于Symfony或Zend Framework的会话抽象库来手动命名命名空间

在每个应用程序中使用
session\u name
,可能如下所示:

//Other init stuff here
define('APPLICATION_ID', "MY_UNIQUE_ID_1");
session_name(APPLICATION_ID);
session_start(); 

您必须为每个应用程序更改某些配置文件中的唯一id。我在这里放了一个
define
来说明它不是凭空而来的。

另一个解决方案是(在
会话开始()之前)

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


关于

这两个应用程序是否在同一台服务器上?是的,不同的网站都有连接到PHP脚本的连接,但连接到同一台服务器。你能给我举一些例子说明在我目前的情况下如何使用session_name吗?