我有一个网站供人们注册以参加小型活动。
按下提交后index.php我启动我的功能以将其数据插入我的数据库,并取决于它是否有效,请在其中设置会话变量。这样:
函数的一部分:
$_SESSION['message'] = "That worked, thank you!";
header("location:thankyou.php")
exit();
在Thenyou.php上,我像这样回应了它:
<?php echo "<div id='content'><h1>".$_SESSION['message']."</h1></div>"; ?>
一切都在本地工作。
我的网站空间上托管的一切都起作用。
但是,由于这是学生委员会的一个活动,所以我进行了一个框架重定向(将其域名放在浏览器Adressbar中(到我的领域。在这一点上,我提交条目后会丢失会议。谢谢你的php空无一人。
我试图用var_dump((检查$ _Session,但它是完全空的。
关于如何在保持框架重定向时如何传输$ _Session阵列的任何提示将不胜感激!
编辑:session_start((已经在每个文件上。
本质上,您可以将iframe
视为一个新的浏览器窗口,现在显示在同一页面中。你说:
我进行了一个框架重定向(将它们的域放在浏览器adressbar中(。
这意味着您尝试愚弄用户。会话通常使用的方式与PHP用于检索会话数据的会话标识符。所以要么:
- 会话ID未正确传递(可能是由于安全限制(,最好先检查此信息,使用
session_id()
或浏览器中的DevTools监视HTTP请求。使用Location:
标头可能不会通过会话ID,甚至可能是浏览器的特定于浏览器。 - 主窗口设置了会话ID,在
iframe
和主窗口中存储会话之间可能存在不匹配。首先要检查的是配置。