我建立了一个网站,供人们报名参加小型活动。
按下提交后 index.php我启动我的函数将数据插入到我的数据库中,并根据它是否有效,设置一个会话变量,其中包含结果。像这样:
部分功能:
$_SESSION['message'] = "That worked, thank you!";
header("location:thankyou.php")
exit();
在thankyou.php上的我这样回应:
<?php echo "<div id='content'><h1>".$_SESSION['message']."</h1></div>"; ?>
一切都在本地运作。
一切都在我的网站空间上托管。
但是因为这是学生会的一个事件,我做了一个框架重定向(将他们的域名保存在浏览器地址栏中)到我的域名。此时,在我提交条目后会话丢失。 thankyou.php保持空白。
我尝试使用var_dump()检查$ _SESSION,但它完全为空。
任何有关如何在保持帧重定向的同时传输$ _SESSION数组的提示都将非常感激!
编辑:session_start()已存在于每个文件中。
答案 0 :(得分:2)
基本上,您可以将iframe
视为新的浏览器窗口,现在显示在同一页面中。你说:
我做了一个框架重定向(将他们的域名保存在浏览器地址栏中)到我的域名。
这意味着你试图欺骗用户一点。会话通常的工作方式是使用PHP用于检索会话数据的会话标识符。所以:
session_id()
或浏览器中的devtools来监控http请求。使用Location:
标头可能无法传递会话ID,甚至可能是浏览器特定的。iframe
和主窗口中的存储方式可能不匹配。首先要检查的是配置。