diff --git a/app/router/router.php b/app/router/router.php index 7adb7e59844e64d7d4198fbe91166a2cff53abc4..3f91dc9d332878990b3d6fd51db0a2b0d4e0ccd9 100644 --- a/app/router/router.php +++ b/app/router/router.php @@ -8,7 +8,7 @@ function Extract_url($url) { $url = substr($url, -1) == '/' ? substr($url, 0, -1) : $url; $url_parts = explode('/', $url); - if (strpos(end($url_parts, '?'))) { + if (strpos(end($url_parts), '?')) { $url_parts[count($url_parts) - 1] = substr(end($url_parts), 0, strpos(end($url_parts), '?')); } else { $url_parts[count($url_parts) - 1] = end($url_parts); @@ -76,19 +76,30 @@ function Not_Outside($controller_name) return $controller_name != 'login' && $controller_name != 'register'; } -function Session_Invalid($extracted_url, $controller_name) +function Should_Redirect_To_Login($extracted_url, $controller_name) { if (!Is_API_request($extracted_url[0]) && (!isset($_COOKIE['LOGIN_HASH']))) { return true; } - if (((!Is_Login_Hash_valid($_COOKIE['LOGIN_HASH']))) && Not_Outside) { + var_dump(((!Is_Login_Hash_valid($_COOKIE['LOGIN_HASH']))) && Not_Outside($controller_name)); + if (((!Is_Login_Hash_valid($_COOKIE['LOGIN_HASH']))) && Not_Outside($controller_name)) { return true; } return false; } +function Is_Logged_In() +{ + return isset($_COOKIE['LOGIN_HASH']) && Is_Login_Hash_valid($_COOKIE['LOGIN_HASH']); +} + +function Is_From_Login_Or_Register($controller_name) +{ + return $controller_name == 'login' || $controller_name == 'register'; +} + function Handle_routing($extracted_url) { ob_start(); @@ -109,7 +120,7 @@ function Handle_routing($extracted_url) throw new Exception('404'); } - if (Session_Invalid($extracted_url, $controller_name)) { + if (!Is_API_request($extracted_url[0]) && !Is_Logged_In() && !Is_From_Login_Or_Register($controller_name)) { header("Location: /login"); exit(); }