繁体   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