我有两个应用程序,我想将它们合并。其中一个是我编写的,另一个是我正在使用的CMS。我的身份验证是在我编写的应用程序中进行的,我希望我的CMS能够知道这些信息。问题是CMS使用一个会话名称,而我的应用程序使用另一个名称。由于可能存在名称空间冲突,我不想让它们使用相同的名称,但我仍然希望获取此信息。
在请求过程中是否可以切换会话名称?例如,在CMS中执行以下操作:
//session_start already called by cms by here
$oldSession = session_name();
session_name("SESSION_NAME_OF_MY_APP");
session_start();
//get values needed
session_name($oldSession);
session_start();
这个方案可行吗?我在文档和网络上找不到任何关于在调用session_start()后是否可以使用类似此方案的信息。有什么建议吗?
如果没有其他解决方法,我一直在考虑开发Web服务来获取信息,但显然从会话中获取信息更好,因为那些信息已经可用。
谢谢!
session_regenerate_id()
(但必须在第二个session_start()
之后执行)。通过进行此更改并从代码中删除两个session_id()
调用,您可以获得相同的效果,而无需处理会话ID。请注意,这不会加载旧会话 - “第二个会话”中存在的所有数据与第一个会话中的数据相同 - 它只是防止将新数据写入旧会话。它看起来像是构建自己的可交换会话管理机制的开始。 - Guss