0

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!

Roshana Pitigala
  • 8,437
  • 8
  • 49
  • 80

1 Answers1

1

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;

Community
  • 1
  • 1
Roshana Pitigala
  • 8,437
  • 8
  • 49
  • 80