为什么页面重定向在php中不起作用

为什么页面重定向在php中不起作用,php,redirect,Php,Redirect,我不明白为什么下面的代码没有重定向,我破坏了会话,所以条件应该是真的,但它没有重定向到这个页面 <?php session_start(); if(!isset($_SESSION['userid'])) { header('Location: Login.html'); exit; } ?> 但是在注销php中,重定向工作得很好 <?php session_start(); session_de

我不明白为什么下面的代码没有重定向,我破坏了会话,所以条件应该是真的,但它没有重定向到这个页面

<?php
    session_start();

    if(!isset($_SESSION['userid'])) {   
        header('Location: Login.html');
        exit;
    }
?>
但是在注销php中,重定向工作得很好

<?php
    session_start();
    session_destroy();
    header('Location: Login.html');
    exit;
?>
编辑

我可以在Chrome开发者工具中看到一个重定向调用,但实际上并不是重定向


请帮助我理解代码中的错误。

确保在显式执行unset$\u会话['userid']之前没有空格;应该足够了

美国的网页

会话销毁销毁与当前会话关联的所有数据。它不会取消设置与会话关联的任何全局变量,也不会取消设置会话cookie。要再次使用会话变量,必须调用session_start

为了完全终止会话(如注销用户),还必须取消设置会话id。如果使用cookie传播会话id默认行为,则必须删除会话cookie。setcookie可用于此目的


在打开isset后立即将错误报告添加到文件顶部。isset未检查该值是否为真。它检查密钥是否存在。。。因此,如果$\u会话['userid']存在但为false,则不会重定向。你应该用空的来代替。@Cfreak,我相信设置就足够了。他正试图把它全部移除。如果它被删除,isset将返回false。他不在乎现在的价值是多少is@MikeB,所有这些都表示JS,因为CORS。这是用PHP编写的。意思是它的服务器端。浏览器无关。服务器在将任何内容发送到浏览器之前进行重定向