【发布时间】:2022-08-23 22:36:52
【问题描述】:
我想知道在 Javascript 中使用 window.open() 时 $_SESSION 变量是否会传递给网页。
我有:
<?php
session_start();
$_SESSION[\"cookie\"] = \"12345\";
?>
在contact.php中,然后
window.open(\"./contact-form-submitted.php\", \"_self\");
在contact.js中,并且:
<?php
session_start();
if ($_SESSION[\"cookie\"] == \"12345\") {
echo \"test\";
}
?>
在contact-form-submitted.php 中。我正在使用 fetch() 将联系信息提交到我的后端。当 contact-form-submitted.php 加载时,我收到以下错误,
Warning: Undefined array key \"cookie\" in /Users/marcofusco/Desktop/Cloud Innovations/website v2/contact-form-submitted.php on line 3
这意味着会话变量没有被传递。这是为什么?
谢谢。
-
如果 PHP 页面是同一个站点的一部分并且在同一个用户会话中,那么它应该可以正常工作。如果您在第一个脚本之前调用第二个脚本,它应该不起作用。
-
这回答了你的问题了吗? window.open doesn\'t open in same session
-
@YasserCHENIK 该问题仅适用于 Internet Explorer,因此不再相关。据我所知,所有现代主流浏览器都会在调用 window.open 时在同一会话中打开一个新选项卡。它似乎也特定于页面显示在嵌入在 Windows 应用程序中的 Web 浏览器控件中的情况。在将其提名为副本之前,您实际上是否阅读了比标题更进一步的内容?
-
@ADyson 它现在正在工作。我不知道为什么,但我刷新了页面并且它工作正常。
-
你刷新了哪个页面?如果您刷新了contact.php,那么显然它将创建会话值。
标签: javascript php