[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите проверить и допилить!)
Страницы: 1, 2
CoopeR
Предупреждаю сразу, я ученик и я только учусь. Хочу сделать что то типо примитивного MVC роутера
классами, PDO и тд не пользуюсь, так как ещё не умею, поэтому процедурный стиль...(код немного сокращен для наглядности)
Вопрос: можно ли так?, безопасно ли так? и вообще что убрать что добавить

Файл .htaccess - перенаправляет все запросы на index.php (только если не существует такого файла)
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ [NC,L]
RewriteRule ^.*$ index.php [NC,L]


Файл index.php -
<?php define('_TEST',true);
mb_internal_encoding("UTF-8");
error_reporting(E_ALL);
ini_set('display_errors', 1);
if (version_compare(phpversion(), '5.1.0', '<') == true) { die ('PHP5.1 Only'); }
require_once ('router.php'); //ссылка на роутер
?>



Файл router.php - наш роутер
<?php defined('_TEST') or die();
if ($_SERVER['REQUEST_URI'] == '/') { // если главная страница то

require_once('controller/index.php');
} else { // если не главная то
$parse = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); // Парсим урл с GET и POST запросами
$url = explode('/', trim($parse, ' /')); // Разбиваем урл по символу "/"
if (count($url) > 3) { die('error')} // eсkи больше 3 директорий - ошибка

$controller = empty($url[0]) ? strtolower($url[0]) : 'index';
$model = empty($url[1]) ? strtolower($url[1]) : 'index'; // проверили существование
$view = empty($url[2]) ? strtolower($url[2]) : 'index';

$dir_controller = 'controller/' . $controller . '.php';
$dir_model = 'model/' . $controller . '.php'; //определяем поддиректории
$dir_view = 'view/' . $controller . '.php';

if (file_exists($dir_controller)){
require_once($dir_controller); //проверим и подключим контроллер
} else echo'eror load controller';
if (file_exists($dir_model)){
require_once($dir_model); //проверим и подключим модель
} else echo'eror load model';
if (file_exists($dir_view)){
require_once($dir_view); //проверим и подключим вид
} else echo'eror load view';
}
model($model); //запуск функции
view($action); //запуск функции
?>


_____________
Нажимаю "Мой компьютер"... не моет, сукоо...
Познакомлюсь с девушкой, можно крякнутая версия...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.