форум вебмастероff на AlfaSpace.NET |
Ubuntu и Linux
|реактивный бесплатный хостинг
| Киноклуб. ВСЁ БЕСПЛАТНО!
база знаний хостинга
|
правила форума
| Начало ° Ответить ° Статистика ° Опрос ° Регистрация ° Поиск ° FAQ ° |
| Форум вебмастеров на AlfaSpace.NET / Создание сайта / Вставляем в путь значение переменной |
| Автор | Сообщение |
| Рамиль minibb moder 1152 |
# Дата: 17 Апр 2006 09:16 ° Поправил: Рамиль Будет ли следующий include работать? $page=index;
include('../templates/' .$page '.tpl)? З.Ы. Можно ли будет задать значение переменной в адресе к файлу? Например, http://internet.truehosting.ingo/index.php?page=design |
| smallcms Участник 2752 |
# Дата: 17 Апр 2006 09:32 ° Поправил: smallcms Рамиль конечно будет. только вот так: $page=index;
include('../templates/' .$page '.tpl');только это не безопасно. желательно сначала проверить, что тебе пришло в переменную $page. а вдруг там кака, которую ты не ожидаешь (например символы \ / ? & <>). тогда пиши пропало. прег_реплейсом убей ненужные (опасные) символы. сделай проверку типа $page=index;
if (file_exists('../templates/' .$page '.tpl') {
include('../templates/' .$page '.tpl');
} else {
include('../templates/PREVED.tpl');
}
З.Ы. Можно ли будет задать значение переменной в адресе к файлу? Например, http://internet.truehosting.ingo/index.php?page=design
можно. только переменной $page нужно присвоить значение $_GET['page'] итог:
if (isset($_GET['page'])) {
$page = $_GET['page'];
if (file_exists('../templates/' .$page '.tpl') {
include('../templates/' .$page '.tpl');
} else {
include('../templates/PREVED.tpl');
}
} else {
include('../templates/PREVED.tpl');
}
вот кусок из моего серьёзного проекта:
/* если есть адрес с параметром ?page=страница */
if (isset($_GET['page']) && $_GET['page'] != '') {
/* жестко ограничиваем набор символов */
$page = preg_replace('/[^-a-z0-9]|[\\s%+]/', '', $_GET['page']);
/* если есть скрипт с таким именем - включаем в обработку */
/* из включённого скрипта нужно вызвать необходимый темплейт */
/* с помощью присвоения $printout .= gettpl($темплейт); */
if (file_exists($baseurl.'pgs/'.$page.'.php')){
include_once($baseurl.'pgs/'.$page.'.php');
} else {
/* иначе - пробуем вывести темплейт (без его скрипта) */
$printout .= gettpl($page);
}
} else {
/* иначе - выводим index (главную страницу) */
$printout .= gettpl('index');
}
здесь всё в комментариях... ![]() |
| Рамиль minibb moder 1152 |
# Дата: 17 Апр 2006 11:09 ° Поправил: Рамиль smallcms Спасибо большое! Мне бы таким как ты... З.Ы. А $baseurl можно заменить просто на ../templates/? |
| smallcms Участник 2752 |
# Дата: 17 Апр 2006 11:16 Рамиль естественно.
не за что. не совершай ошибок. программируй, помня о злодеях. ![]() |
| Рамиль minibb moder 1152 |
# Дата: 18 Апр 2006 11:26 smallcms А чем в принципе можно навредить неправильными символами в пути (<> и т.п.)? |
| smallcms Участник 2752 |
# Дата: 18 Апр 2006 12:16 Рамиль site.com/index.php?page=/etc/passwd site.com/index.php?msg=<a href=http://www.evil.by/>HACKED!</a> |
| Рамиль minibb moder 1152 |
# Дата: 18 Апр 2006 12:21 smallcms Теперь понятно... |
| acsid Alfa Guru 2466 |
# Дата: 18 Апр 2006 14:39 ° Поправил: acsid Рамиль впринцепи это основа цмс, отсюда можно плясать дальше инклюдя модули и блоки |
| Рамиль minibb moder 1152 |
# Дата: 19 Апр 2006 07:38 acsid Я и хочу заюзать это для своего движка |
|
Powered by miniBB forum software © 2001-2008
Powered by miniBB-gzipper. Original size:28069, gzipped size:8517 |