通过多种语言访问 Session-Vars

Access Session-Vars over multiple languages

可能我对session的理解有偏差,session不是存储在浏览器中的吗?更像是,只要浏览器打开,会话就应该处于活动状态,对吧? (如果您不更改默认行为)。

我们的项目中有多种语言,我们正在努力摆脱这些语言。目前,我们 90% 的代码是 classic asp 中的 运行,并将替换为 PHP

如果我尝试访问 asp 部分中的变量,它工作正常:

<%= session("name") %> 

例如,这会输出 "Jon"。

如果我像这样通过 PHP 获取此输出:

<? var_dump($_SESSION); ?> 

我只是得到 NULL。不用说,<?= $_SESSION["name"] ?> 也行不通。

我永远不会离开网站,只是路径不同:

mysite.com/default.asp 工作正常

mysite.com/phptest/session.php 尝试访问会话时仅 returns NULL。这是为什么?这两种语言在 IIS 上都是 运行。我是否必须以某种方式告诉 PHP 访问现有会话?

我相当确定,我之前在 PHP + JavaScript 中结合访问 Session-Vars 并且效果很好。

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

你可以做的是将会话变量的内容保存到一个 cookie 中,然后你的 PHP 页面可以读取它(稍微扭曲一下,显然:

希望对您有所帮助!