Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Расширения .inc и .tpl [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): « 1 [2]   

> Описание: Для чего конкретно нужны и как использовать?
Agassi
Отправлено: 15 Ноября, 2008 - 23:21:40
Post Id



Частый гость


Покинул форум
Сообщений всего: 158
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




JustUserR пишет:
А чем вас не устраивают include/raquire ?

А тем и не устраивает.Я имеел ввиду насчёт .tpl
Я хачу отделить шаблон от кода,и приэтом не делать Fopen fread replace.
А место этого всего хотелось бы иметь одну функцию.Которая хагрузить в переменую шаблон или что-то подобное.
 
 Top
DeepVarvar Супермодератор
Отправлено: 13 Января, 2009 - 03:40:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Agassi пишет:
JustUserR пишет:
А чем вас не устраивают include/raquire ?

А тем и не устраивает.Я имеел ввиду насчёт .tpl
Я хачу отделить шаблон от кода,и приэтом не делать Fopen fread replace.
А место этого всего хотелось бы иметь одну функцию.Которая хагрузить в переменую шаблон или что-то подобное.


Допустим есть цикл вывода сообщений гостевухи...
И что мешает создать отдельный файл окантовки ОДНОГО сообщения c html/php-тегами и абсолютно любым расширением *.tpl, *.dat, *.txt, *.php, *.abcderasshirenie, *.xxx..... и заинклюдить его в цикл? Я так и поступаю.. Кстати в папке с темплейтами таких файлов немало.. Так вот к чему файл принадлежит можно указать (для себя) не только в имени, но и в его расширении... Например "wievmsg.gbook" и "wievmsg.forum".....
 
 Top
EuGen Администратор
Отправлено: 13 Января, 2009 - 10:20:42
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




При этом, правда, не стоит забывать о безопасности. В частности, о типах файлов, обрабатываемых веб-сервером.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Stierus Супермодератор
Отправлено: 13 Января, 2009 - 10:39:19
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




Это всего-лишь принятые обозначения, что если расширение .tpl - постороннему программисту это говорит о том, что внутри шаблон, если .inc - то подгружаемый php-код. Ничего не изменится, если вы назовёте файл .jsdg и будете его подгружать, просто так не принято.

зы
Жесть, ребят Улыбка
 
My status
 Top
DeepVarvar Супермодератор
Отправлено: 13 Января, 2009 - 12:59:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




EuGen пишет:
При этом, правда, не стоит забывать о безопасности. В частности, о типах файлов, обрабатываемых веб-сервером.

Если файлы именно инклюдить\рекурить то тип файла не имеет значения, его содержимое вставляется как текст в тело скрипта с инклюдой.. А потом в .htaccess пишем запреты и все путем.. Самое приятное что если в главном файле идет чистый код, а во вставляемом хтмл/php-теги (пример: <tr><td><? print $peremennaya; ?></td></tr>), или просто хтмл,
никакой ошибки не возникает..

Представляете:

index.рнр
PHP:
скопировать код в буфер обмена
  1. <? $a='всякая белиберда'; require ('including.wassup'); ?>

including.wassup
PHP:
скопировать код в буфер обмена
  1. <table><tr><td><? print $a; ?></td></tr></table>

..совершенно спокойно выведут:
CODE (text):
скопировать код в буфер обмена
  1. <table><tr><td>всякая белиберда<td></tr></table>

(Отредактировано автором: 13 Января, 2009 - 13:08:13)

 
 Top
EuGen Администратор
Отправлено: 13 Января, 2009 - 13:08:52
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




А речь не об ошибке.
А о распространенной халатности среди разработчиков - выложить *.inc (ну и любое другое, что воспримется веб-сервером как текстовый контент) в доступное (через веб) пользователю место, и потом удивляться откуда пользователи знают например, пароли к БД (ну, например, head.inc с коннектом к БД, подключающийся везде и лежащий в том же каталоге, где и остальные скрипты).


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
DeepVarvar Супермодератор
Отправлено: 13 Января, 2009 - 13:37:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




А я к тому что если написать так:
CODE (text):
скопировать код в буфер обмена
  1. <?
  2. $a='всякая белиберда';
  3. print '<table><tr><td>'.$a.'</td></tr></table>';
  4. ?>

то это не так удобно...
 
 Top
EuGen Администратор
Отправлено: 13 Января, 2009 - 13:52:51
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Шаблоны и инклуды можно и даже нужно (а я бы даже требовал) использовать. Но нужно при этом не навредить безопасности.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Stierus Супермодератор
Отправлено: 13 Января, 2009 - 16:11:48
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




По поводу .inc файлов я солидарен с eugen, он говорит о том, что apache надо конфигурировать так, что бы .inc файлы не считались текстовыми (их содержимое что бы не отдавалось сразу клиенту), потому как в них могут быть данные, не предназначенные для просмотра пользователем (довольно популярно в .inc пихать конфиг для соединения с базой данных). Если apache не настроен и пользователь запросит файл напрямую (в браузере введёт http://somesite.ru/includes/config.inc, например) - ему покажется всё содержимое файла:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. $db_login="root";
  4. $db_host = "localhost";
  5. $db_psw = "password";
  6. ?>
  7.  


Последствия сами оцените ? И ни про какие удобства, шаблоны и прочее тут не при чём, речь о доступе к информации, не предназначенной для пользователя, что нужно быть аккуратным и знать, что делаешь.


Отредактировано модератором: Champion, 14 Января, 2009 - 08:34:17
Не надо публично ругаться на других участников форума. Объясните ему свою точку зрения в личку)
 
My status
 Top
DeepVarvar Супермодератор
Отправлено: 13 Января, 2009 - 21:24:21
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Stierus пишет:
Последствия сами оцените ? И ни про какие удобства, шаблоны и прочее тут не при чём, речь о доступе к информации, не предназначенной для пользователя, что нужно быть аккуратным и знать, что делаешь.

Я ведь конкретизировал для чего именно я так делаю.. И что с того? Набрал кто-то полный путь, посмотрел, и что увидел? Ничего! Там .htaccess про эти расширения отписан!
CODE (text):
скопировать код в буфер обмена
  1. <Files *.blablabla>
  2. order allow,deny
  3. deny from all
  4. </Files>
 
 Top
Stierus Супермодератор
Отправлено: 14 Января, 2009 - 09:19:54
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




DeepVarvar, вы читаете, что вам пишут ?
 
My status
 Top
Гость
Отправлено: 14 Января, 2009 - 12:00:42
Post Id


УДАЛЁН










Какойто оффтопик развели уж извините
Что же тут сложного, *.TPL - шаблон (Или файл турбо паскаля Улыбка, а *.INC - внешнаяя библиотека так сказать, и все это текстовые файлы (Если не использовался Zend Compiler или чтото сходное)
Насчет безопасности тут все также как и с файлами *.PHP - забыл поставить AddHandler - пользователь получил исходник, правда их на выполнение ставить не надо
Кстати с таким же успехом можно юзать XSL-шаблоны, если понимаете в них хорошо и можете их парсить Улыбка

P.S. Всех со старым новым годом Подмигивание

(Отредактировано автором: 14 Января, 2009 - 12:01:07)

 
 Top
valenok Модератор
Отправлено: 14 Января, 2009 - 14:28:46
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




С новым годом.
Тема закрыта!


-----
Truly yours, Sasha.
 
My status
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB