форум вебмастеро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
Я и хочу заюзать это для своего движка

Ваш ответ

Quote  Bold Style  Italic Style  Underlined Style  URL Link  Email Link  Script AutoTab  Preformatted Text  Отменить *Что это?
... Запретить смайлы


Перед отправкой "нелатинского" текста проверьте кодировку броузера!
 » Логин  » Пароль 
 
Powered by miniBB forum software © 2001-2008
Powered by miniBB-gzipper. Original size:28069, gzipped size:8517

Mp3 Download || Мир Спанч боба || Song's Lyrics
eXTReMe Tracker Rambler's Top100 Рейтинг@Mail.ru Форум ТвойWeb [Valid RSS]