使用php标头重定向时的延迟(“刷新”)

使用php标头重定向时的延迟(“刷新”),php,html,Php,Html,可能重复: 为了在没有登录的情况下无法访问mainpage.php,我使用以下代码启动mainpage.php: <?php session_start(); if(!isset($_SESSION['name'])){ header("Refresh: 0; url=hauptseite_slim.php"); } ?> <!DOCTYPE html> ... ... 这正是我想要的,但问题是,它非常丑陋,因为有一小会儿,

可能重复:

为了在没有登录的情况下无法访问mainpage.php,我使用以下代码启动mainpage.php:

<?php
    session_start();
    if(!isset($_SESSION['name'])){
        header("Refresh: 0; url=hauptseite_slim.php");
    }
?>
<!DOCTYPE html>
...

...

这正是我想要的,但问题是,它非常丑陋,因为有一小会儿,主页出现了。如何避免这种影响

为什么不使用
标题(“location:hauptseite_slim.php”)


这就是我认为的最佳实践:

header("location: hauptseite_slim.php");
exit;

如果不想发送if语句后的html,只需返回

 if(!isset($_SESSION['name'])){
        header("Refresh: 0; url=hauptseite_slim.php");
        return;
    }

通过不输出页面<代码>退出(标题(..)。还有一个
位置:
可能是更好的选择。只是一个注释。。。。。。此:if(!isset($\u SESSION['name'])不应用于检查用户是否已登录。会议很容易被高举。在每次页面加载时都应重新验证用户。ebay、facebook和google等网站如何让用户登录?方法是:在每次页面加载时重新生成会话id,调用会话值、数据库值和浏览器cookie,通过验证方法/函数运行它们,然后返回值。
header(“location:page.php”);退出-退出将停止加载任何其他代码。不会妨碍前面提到的页面输出。而且,答案应该不仅仅是一个问题。如果它以问号结尾,可能不是偶数。这是因为我通常使用这段代码来跳转到一页,没有使用上面使用的技术,也没有比较它们。但是是的,我同意其他人的评论,它应该在之后添加exit,以确保代码在之后停止。将编辑我的答案