也许我对会话的了解已关闭,但是会话是否不存储在浏览器中?更像是,只要打开浏览器,会话就应该处于活动状态,对吗? (如果您不更改默认行为)。
我们的项目中有多种语言,我们试图摆脱这种语言。当前,我们90%的代码正在classic asp
中运行,并将被PHP
取代。
如果我尝试在asp部分中访问变量,则可以正常工作:
<%= session("name") %>
例如,输出“ Jon”。
如果我尝试像这样通过PHP获得此输出:
<? var_dump($_SESSION); ?>
我只是得到NULL。不用说,<?= $_SESSION["name"] ?>
也不起作用。
我永远不会离开站点,只有路径不同:
mysite.com/default.asp
工作正常
mysite.com/phptest/session.php
仅在尝试访问会话时返回NULL。这是为什么?两种语言都在IIS上运行。我是否必须以某种方式告诉PHP访问现有会话?
我可以肯定的是,我之前曾组合使用PHP + JavaScript访问Session-Vars,并且效果很好。
答案 0 :(得分:1)
会话对象特定于Active Server Pages。如果您有同时运行PHP和ASP的混合站点,则将无法在PHP页面中使用ASP会话变量。 Session中的对象和变量由ASP管理;浏览器唯一涉及的是在cookie中保留对该会话的引用。
您可以做的是将会话变量的内容保存到cookie中,然后可以由您的PHP页面读取(稍作改动,显然是Read classic ASP's cookies with PHP)
希望这会有所帮助!