最好的重定向方法?

Jas*_*vis 3 php redirect header

在PHP文件中,当我需要重定向用户并且已经发送了标题时,我不能使用php的标题函数,在这种情况下哪个是重定向用户的最佳方法?

无论用户浏览器品牌如何,最快,最可靠的方法?

echo '<script type="text/javascript">window.top.location="http://localhost/";</script>';

// OR

echo '<meta http-equiv="refresh" content="0;url=' .$location. '">';
Run Code Online (Sandbox Code Playgroud)

UPDATE

这是我现在使用的最终结果代码,如果标题已经发送到我无法重定向到主页,我只是将主页带给我,所以不包括正文页面,它将包括我的主页和页脚

function validlogin($url) {
    if (!isset($_SESSION['auto_id']) || ($_SESSION['auto_id']=='')) {
        $_SESSION['sess_login_msg'] = 'Please login';
        $_SESSION['backurl'] = $url;
        $temp = '';
        if (headers_sent() === false){
            header("Location: /");
            exit();
        }else{
            //header is already sent so we will just bring the homepage to us instead of going to it!!!
            include 'mainbody.inc.php';
            include 'footer.inc.php';
            exit();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Kor*_*nel 7

不要使用任何这些!您应该始终使用HTTP重定向.

使用ob_start()缓冲的内容,避免已经发送了头的问题.

您也可以尝试编写MVC应用程序,在那里您可以知道在输出任何内容之前是否需要重定向(但这ob_start()不是必需的).