PHP 标头位置重定向方法不起作用


php header location redirect method didn't work

    <?php
    if(isset($_SESSION['logged_in']))
    {
            header('Location: test.php');
echo "test";
    ?>
    <?php
    }
    else
    {
    ?>
            <a href="#" onclick="CallAfterLogin();"><img src="facebook-login-button.png" border="0" alt="Log in with Facebook"></a>
    <?php } ?>

用户登录后,我返回到此文件,它不会重定向。我想知道它确实出现了回声,但没有出现重定向。

从您的代码来看,您似乎正在尝试在页面中间进行此重定向 - 您必须在进行任何输出之前进行重定向。例如,由于这是在a标签之前,我假设您已经在某个时候发送了<html>标签。

<?php //headers ok here ?>
<!DOCTYPE html>
<?php
  // Too late for headers already.

试试这个

    <?php
    ob_start();
        if(isset($_SESSION['logged_in']))
        {
                header('Location: test.php');
    echo "test";
        ?>
        <?php
        }
        else
        {
        ?>
                <a href="#" onclick="CallAfterLogin();"><img src="facebook-login-button.png" border="0" alt="Log in with Facebook"></a>
        <?php }
ob_end_flush();
 ?>