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