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 @@
+
+