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!
Problem solved by adding
exit
statement afterheader($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;