标头()重定向后,PHP会话变量丢失了

时间:2018-07-06 14:30:36

标签: php session

尽管在我看来似乎没有一个可行的方法,但我已经探索了关于堆栈溢出的各种解决方案。

这是我的问题。在我的网站上运行php脚本后,我添加了标头函数以将我重定向到这样的另一个页面:

header("Location: https://example.com/examplepage.php");
exit();

此重定向之后,examplepage.php告诉我没有设置会话变量(即使已设置)。

如果重定向后我访问了网站上的另一个页面,则会话变量似乎再次出现,并且一切正常。因此,我假设这是标题重定向的问题。

有人知道什么可能导致此问题吗?

尝试修复

  • 在所有页面上打开php标签后立即包含session_start()
  • 在标题重定向后包含exit()
  • 删除<?php?>标记之前和之后的所有空白

examplepage.php的PHP代码段

<?php
    session_start();
    include '../scripts/dbh.php';

    //checks if the user is logged in
    if((isset($_SESSION['id']))){
        //do stuff
    }
    else{
        //redirect user to login page as they are not logged in
        //this header is executed as it thinks $_SESSION['id'] is not set
        //note that this code is functional, only doesn't work after the header redirect mentioned
        header("Location: https://example.com/login");
    }
?>

0 个答案:

没有答案