重定向php后会话丢失

时间:2017-06-27 14:28:26

标签: php session

首先,我发现了其他几个问题,但到目前为止没有任何帮助。 快速提问:重定向后我丢失了会话变量。检查一下:

的login.php

if(preg_match("/[a-zA-Z]{2}\d{2}/im", $_POST["foo"])) {
    if($_POST["email"]) {
        $aPieces = explode("@", $_POST["email"]);
        if(in_array($aPieces[1], $aAllowedMails)) {
            session_start();
            $_SESSION["isAllowed"] = true;
            header("Location: start.php");
            exit;
        }
    }
}

Start.php

<?php
    // session_start()
    if($_SESSION["isAllowed"] == true) : 
?>
some content

<?php else : ?>

<h1>Acces Denied</h1>

<?php endif ?>

我的会话在第二页(start.php)上始终为NULL,这导致“访问被拒绝” - 文本。试图在session_start上添加第二个start.php,但最终会出现错误消息:

  

session_start():无法发送会话缓存限制器 - 已发送的标头&gt;   (输出从[path] /start.php:1开始)in   有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您是否在下一页开始会话? 如果不这样做,可以通过将其添加到代码中来完成此操作:

<?php session_start(); ?>
<?php
    if($_SESSION["isAllowed"] == true) : 
?>
some content

<?php else : ?>

<h1>Acces Denied</h1>

<?php endif ?>