PHP会话不通过框架重定向传输



我有一个网站供人们注册以参加小型活动。

按下提交后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用于检索会话数据的会话标识符。所以要么:

  1. 会话ID未正确传递(可能是由于安全限制(,最好先检查此信息,使用session_id()或浏览器中的DevTools监视HTTP请求。使用Location:标头可能不会通过会话ID,甚至可能是浏览器的特定于浏览器。
  2. 主窗口设置了会话ID,在iframe和主窗口中存储会话之间可能存在不匹配。首先要检查的是配置。

最新更新