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