dtl4521 2017-04-18 21:00
浏览 33
已采纳

在函数内调用时,标头不起作用

I have created a php file named public.php and have added few functions to it to reduce code redundancy. One of the functions is as follows.

/**
 * Checks if there is a valid session and navigates to the login page if false.
 * @return boolean true if session valid.
 */
function checkSession_auto() {
    if (checkSession()) {
        return true;
    } else {
        //echo 'pass'; exit;
        header("location: accounts/login.php");
    }
}

I have verified that the checkSession() returns false, using an echo statement. Here's the problem.

The page does not navigates to login.php. Why?

Thanks in advise!

  • 写回答

1条回答 默认 最新

  • douhan0562 2017-04-18 21:37
    关注

    Problem solved by adding exit statement after header($string), read this comment.

    It seems that the exiting is mandatory after sending a location header unless you do not have any code (PHP or HTML) under header.

    The header is only a line of data asking the browser to redirect. The rest of the page will still be served by PHP and can be looked at by the client by simply preventing the header command from executing.

    Resources;

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?