如何将运行在同一服务器上的2个PHP应用程序从使用公共会话中分离出来

bz4sfanl  于 2022-12-28  发布在  PHP
关注(0)|答案(2)|浏览(98)

I have 2 separate PHP apps running on the same domain server: abc.com/demo & abc.com/live
这两个应用程序的几乎每个PHP页面上都有session_start()。只要一个用户与第二个应用程序交互,第一个应用程序就会冻结或停止工作。我认为这两个应用程序使用了相同的会话ID,这就导致了冲突。
我在PHP手册上读到过指定PHP会话名的内容

session_name("DEMO");

或会话名称("实时");可能会有帮助。
我的问题是,我是否需要在两个应用程序中的每个PHP页面上指定session_name,或者仅在登录成功过程中首次创建会话时才需要。
好心的建议。谢谢。

rkue9o1l

rkue9o1l1#

如果你的意思是你的PHP文件的数量,你想访问一些存储在PHP会话中的值,那么你应该session_start();对于每个文件
例如store_会话. php

session_start();

$_SESSSION["username"] = "Md Zahidul Islam";

home.php

session_start();

$_SESSSION["username"]; // this will give you Md Zahidul Islam

home-two.php

session_start();

$_SESSSION["username"]; // this will give you Md Zahidul Islam

如果您使用这样的工作,那么就不需要使用session_start();在每个文件上。

类似于header.php

session_start();

home.php

include("header.php");

$_SESSSION["username"]; // this will return you Md Zahidul Islam and this value will come from the store_session.php file

home-two.php

include("header.php");

$_SESSSION["username"]; // this will return you Md Zahidul Islam and this value will come from the store_session.php file
lrpiutwd

lrpiutwd2#

"在每一页上"是正确的方法。
但是将其分离到另一个脚本中,并将其包含在其他脚本中。

示例

因为您将会话命名为"演示"和"现场",所以可能会将决定会话的逻辑放置在两个应用程序共享和/或使用的文件中。

$isProduction = ...;

session_name($isProduction ? "LIVE" : "DEMO");
session_start();

相关问题