通过多种语言访问 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 页面可以读取它(稍微扭曲一下,显然:)
希望对您有所帮助!
可能我对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 页面可以读取它(稍微扭曲一下,显然:
希望对您有所帮助!