通过多种语言访问会话变量

时间:2019-07-30 06:07:15

标签: php session asp-classic

也许我对会话的了解已关闭,但是会话是否不存储在浏览器中?更像是,只要打开浏览器,会话就应该处于活动状态,对吗? (如果您不更改默认行为)。

我们的项目中有多种语言,我们试图摆脱这种语言。当前,我们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,并且效果很好。

1 个答案:

答案 0 :(得分:1)

会话对象特定于Active Server Pages。如果您有同时运行PHP和ASP的混合站点,则将无法在PHP页面中使用ASP会话变量。 Session中的对象和变量由ASP管理;浏览器唯一涉及的是在cookie中保留对该会话的引用。

您可以做的是将会话变量的内容保存到cookie中,然后可以由您的PHP页面读取(稍作改动,显然是Read classic ASP's cookies with PHP

希望这会有所帮助!