我在同一个域(cms和电子商务平台)上有两个web应用程序,我想在它们之间共享会话数据。我可以很容易地对其进行设置,使它们都使用同一个会话,但是$_session变量中的变量名冲突的可能性太大。我想我可以使用命名会话,但我也无法让它工作:

session_name("WEB_APP_ONE");
session_start();
$webAppOneData = $_SESSION;
session_write_close();

//var_dump($_SESSION) = all of the session data for web app one is still contained in $_SESSION even though I closed the session with session_write_close()

session_name("WEB_APP_TWO");
session_start();
$_SESSION['WEB_APP_ONE'] = $webAppOneData;

//var_dump($_SESSION) = all of the session data for web app one is still here

我不确定这是否可能,但我想知道是否可能!
注意:我得到的实际用例是能够显示CMS中访问者购物车中有多少产品。购物车数据存储在电子商务平台的会话中,但我需要从CMS的标题显示。我希望CMS和购物车之间能够无缝集成。

最佳答案

我建议只使用嵌套数组来命名会话间隔:

$_SESSION['app1']['app1var'] = 'value';
$_SESSION['app2']['app2var'] = 'value';

您也可以考虑从数据库中存储和检索会话信息,而只使用会话来存储用户身份验证信息,该信息告诉您要访问哪个数据库行。

09-25 16:47
查看更多