我在同一域上有两个 Web 应用程序(一个 CMS 和一个电子商务平台),我想在它们之间共享会话数据。我可以轻松地进行设置,以便它们都使用相同的会话,但是 $_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
Run Code Online (Sandbox Code Playgroud)
我不确定这是否可行,但我想知道是否可行!
注意:我所了解的实际用例是能够在 CMS 中显示访客购物车中有多少产品。购物车数据存储在电子商务平台的会话中,但我需要从CMS的标题中显示。我希望 CMS 和购物车之间能够无缝集成。
我建议仅使用嵌套数组对会话进行命名空间:
$_SESSION['app1']['app1var'] = 'value';
$_SESSION['app2']['app2var'] = 'value';
Run Code Online (Sandbox Code Playgroud)
您还可以考虑从数据库存储和检索会话信息,仅使用会话来存储用户身份验证信息,该信息告诉您要访问哪些数据库行。
| 归档时间: |
|
| 查看次数: |
3103 次 |
| 最近记录: |