diff --git a/application/controllers/controller_404.php b/application/controllers/controller_404.php deleted file mode 100644 index a757717..0000000 --- a/application/controllers/controller_404.php +++ /dev/null @@ -1,11 +0,0 @@ -view->generate('404_view.php', 'template_view.php'); - } - -} diff --git a/application/controllers/controller_admin.php b/application/controllers/controller_admin.php index 5f3cc96..b7cc5e6 100644 --- a/application/controllers/controller_admin.php +++ b/application/controllers/controller_admin.php @@ -12,14 +12,14 @@ function action_index() в коде значению — паролю. Такое решение не правильно с точки зрения безопасности. Пароль должен храниться в базе данных в захешированном виде, но пока оставим как есть. */ - if ( $_SESSION['admin'] == "12345" ) + if ( isset($_SESSION['admin']) && $_SESSION['admin'] == "12345" ) { $this->view->generate('admin_view.php', 'template_view.php'); } else { session_destroy(); - Route::ErrorPage404(); + $this->ErrorPage404(); } } diff --git a/application/core/controller.php b/application/core/controller.php index 244789c..c18e784 100644 --- a/application/core/controller.php +++ b/application/core/controller.php @@ -15,4 +15,9 @@ function action_index() { // todo } + + function ErrorPage404() + { + $this->view->generate('404_view.php', 'template_view.php'); + } } diff --git a/application/core/route.php b/application/core/route.php index 949d29a..1a9ae66 100644 --- a/application/core/route.php +++ b/application/core/route.php @@ -33,12 +33,6 @@ static function start() $controller_name = 'Controller_'.$controller_name; $action_name = 'action_'.$action_name; - /* - echo "Model: $model_name
"; - echo "Controller: $controller_name
"; - echo "Action: $action_name
"; - */ - // подцепляем файл с классом модели (файла модели может и не быть) $model_file = strtolower($model_name).'.php'; @@ -54,39 +48,31 @@ static function start() if(file_exists($controller_path)) { include "application/controllers/".$controller_file; + + // создаем контроллер + $controller = new $controller_name; + $action = $action_name; + + if(method_exists($controller, $action)) + { + // вызываем действие контроллера + $controller->$action(); + } + else + { + // если файл контроллера не содержит требуемого класса или действия + $controller = new Controller; + $controller->ErrorPage404(); + } + } else { - /* - правильно было бы кинуть здесь исключение, - но для упрощения сразу сделаем редирект на страницу 404 - */ - Route::ErrorPage404(); - } - - // создаем контроллер - $controller = new $controller_name; - $action = $action_name; - - if(method_exists($controller, $action)) - { - // вызываем действие контроллера - $controller->$action(); - } - else - { - // здесь также разумнее было бы кинуть исключение - Route::ErrorPage404(); + // если файл контроллера отсутствует + $controller = new Controller; + $controller->ErrorPage404(); } - + } - function ErrorPage404() - { - $host = 'http://'.$_SERVER['HTTP_HOST'].'/'; - header('HTTP/1.1 404 Not Found'); - header("Status: 404 Not Found"); - header('Location:'.$host.'404'); - } - } diff --git a/application/views/404_view.php b/application/views/404_view.php index 3774e59..7c519f1 100644 --- a/application/views/404_view.php +++ b/application/views/404_view.php @@ -1,3 +1,8 @@ + +

404