我们有一个多年开发的 ASP Intranet Web 应用程序,它在 IIS6 上运行。如今,我们想使用 PHP 语言添加一些新功能。PHP 在同一台服务器上运行良好。会话变量需要在 ASP 和 PHP 之间共享。
我在问是否还有其他替代方法可以在经典 ASP 和 PHP 之间共享会话,而不是使用数据库作为网关(对我们来说资源消耗太多)?双方都需要读取/编辑会话变量。
通过稍微调整,我注意到每次用户登录 ASP Web 应用程序时,PHP 端都会生成 PHPSESSID 和 ASPSESSIONID。这些在 ASP 端也是可见的,它们存储在服务器变量 HTTP_COOKIE 中,所以我认为 IIS 核心的 ASP 会话和 PHP 会话变量之间可能存在相关性。
所以,
-- 平均售价 --
<% Response.write ('HTTP_COOKIE') %>
给出:
__utma=...; __utmz=...; computer%5Fid=AAA; lan=fre;ASPSESSIONIDXXXXXXXX=BBBBBBBBBBBBBBBBBBBBBBBB; user_login=cccc
-- PHP --
echo '<pre>';
var_dump($_COOKIE) ?>
echo '</pre>';
给出:
Array
(
[__utma] => ...
[__utmz] => ...
[computer_id] => AAA
[lan] => fre
[ASPSESSIONIDXXXXXXXX] => BBBBBBBBBBBBBBBBBBBBBBBB
[user_login] => cccc
)
在 ASP 方面,如果我写:
<% Request.Cookies(strCookie)(strKey) %>
在一个循环中,它给了我一堆存储的键/值会话 cookie 列表。
但在 PHP 方面,我找不到获取这些键/值列表的方法。也许这是寻找更多的方法?一个真正的现有实现会有所帮助,但欢迎任何答案。