PHP重定向不工作,会话已启动

PHP重定向不工作,会话已启动,php,redirect,Php,Redirect,我试图让PHP重定向在登录表单中工作,但是,它不工作。这是验证成功的代码 $success = (isset($_POST['uri'])) ? '' : '/index.php'; if ($rs->num_rows) { $qn = $db->query("SELECT userid FROM sessions"); $svt = array(); $vbs = $rs->fetch_assoc(); while ($row = $qn

我试图让PHP重定向在登录表单中工作,但是,它不工作。这是验证成功的代码

$success = (isset($_POST['uri'])) ? '' : '/index.php';

if ($rs->num_rows) {

    $qn = $db->query("SELECT userid FROM sessions");
    $svt = array();
    $vbs = $rs->fetch_assoc();

    while ($row = $qn->fetch_assoc()) {
        $svt [] = $row ['userid'];
    }

    if (in_array($vbs ['userid'], $svt)) {
    } else {
        set_session(array_merge($vbs, array('expires' => time() + (30 * 60))));
        $_SESSION['secure3d']['expires'] = time() + (5 * 60);
        header("Location: $success"); // this isn't working but the session is set.
    }
}

你知道我做错了什么吗?

试试$success作为绝对URI,比如在http/1.1中,它必须是绝对URI


另一个常见错误是在header函数之前发送空白。如果包含以
“?>”结尾的include,则可能会发生这种情况。

是否检查是否已到达else语句?或者如果在头之前输出了一些字符串?(警告,例如错误消息)您有一个大括号(至少在粘贴的代码中)是否启用了错误?包括
ini\u集('display\u errors',1);错误报告(E_全部)在脚本的顶部,告诉我们它说了什么。@Ismael,是的,它肯定是这样的。我将禁用errorreporting,看看它是否修复了它,但我没有收到标题警告。@konsolenfreddy刚刚修复了:)它取决于您使用的http版本。。。e、 g.如果您使用http/1.1,它必须是绝对的,不再是。HTTPbis表示,这可能是相对的值得注意的是,它应该是一个相对URL,而不是URI。(
位置:urn:x:12:AB:FF:00
有点毫无意义。)