Доброго времени суток! Решил в проекте использовать шаблоны чтобы отделить логику от содержимого. Например в файле main.php(в нем только php содержимое) проверяю был ли залогинен пользователь, если да то подключаю main_tpl.php в котором находится разметка страницы, если нет то переход к login.php. Но возникает вопрос, если перейти по прямой ссылке к main_tpl.php то там тоже надо делать проверку пользователя. Получается масло масляное. Как лучше сделать? Может просто перенести все html в main.php и в начале страницы делать проверку а шаблоны нафиг не нужны? Подскажете, как лучше?
тоесть если мне надо на main.php сначала на index.php а в нем уже разбираемся, кто залогинен, а кто нет? --- Добавлено --- А как сейчас делают?
Ой, да ладно. Можно и не выпендриваться, а просто в шаблонах защиту от прямого обращения ставить PHP: defined("OK") || die("You are a hacker!"); И в начале любого файла, который точка входа PHP: define("OK", "OK");
Всё равно требуется, если всё это хозяйство лежит выше Document Root. Поскольку на index.php идут обычно только запросы несуществующих файлов, чтоб не направлялись туда картинки, стили, скрипты и пр.
бери от любой CMS, только часть с передачей урла как гет параметра можно выкинуть, т.к. парсить надо $_SERVER['REQUEST_URI']
Код (Text): RewriteEngine on # If a directory or a file exists, use the request directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Otherwise forward the request to index.php RewriteRule . index.php
mkramer звёздочку забыл =) RewriteRule .* index.php cylbps и да mkramer сказал уже, я напомню, в DOCUMENT_ROOT должен быть только файл на который идут запросы, остальное должно быть вне DOCUMENT_ROOT
ну это уже следующий этап морочки. я даже не знаю, зачем так делать, если честно. Расскажите мне плс.
Ну это надо чтоб не писать в каждом файле if(!defined('INSIDE_APP')) die('Access denied'); который мы хотим сделать недоступным для прямого вызова А пхп-машина всёравно сможет подключить все файлы которые нужны
Ну так на всякий случай, например в phpbb во всех файлах такое написано. Мало ли вдруг у тебя будет файл к примеру в котором в чистом виде написано mysqli_query("INSERT INTO Users VALUES 'admin' 'admin'"); Кто нибудь начнёт вызывать этот файл. И будут добавляться админы. Это необязательное вещи. Поэтому их можно не писать, и многие их не пишут.