![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Master |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1530 Регистрация: 13.5.2003 Где: Mother Russia Репутация: 8 Всего: 10 |
У меня была такая идея. Сделать сайт на XML индексами дирикторий сделать XML файлы, и передавать их имена на обработку PHP скрипту, который будет подставлять нужный файл под xsl шаблон! но в связи с моим опытом работы с xml идея благополучно отправлена в to do ![]() -------------------- Вавилон, Вавилон Что ты построил, что разрушил? Вавилон, Вавилон Плавятся души дьявольским огнем. |
|||
|
||||
MuToGeN |
|
|||
![]() Лесник ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4379 Регистрация: 15.8.2002 Где: Москва Репутация: 7 Всего: 32 |
Не... У меня без xml и xsl, просто текстовые фаилы.
Еще когда-то что-то типа этого мастерил с mod_rewrite -------------------- Three pings for the token rings, Five pings for the UNIX machines, Hundred pings for the broken links, One special ping to check them all Through Simple Network Management Protocol! |
|||
|
||||
IZ@TOP |
|
||||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
Master
![]() -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
||||
|
|||||
akul |
|
|||
Unregistered |
чем плохи сами урли такого вида сами по себе, писано-переписано, начиная с трудолюбивого Лебедева и кончая сотней форумов. А для меня это просто показатель, что используется плохой (дыры, которые _надо затыкать_) и ненадежный (надо вручную таскать параметры через URL) принцип. Кстати, туда же - файлы .inc (тоже кто-то советовал..). Достаточно десяти минут, чтобы найти в инете кучку сайтов, базу которых можно вскрыть только потому, что у них файлы .inc называются. Т.е. если кто-то называет файлы .inc - я вижу, что человек ещё чайник. Естественно, надо запретить это в апаче, вынести за корень.... но это все - затыкание дыры, которую мы сами создали, когда надо было сразу .inc.php. Надеюсь, объяснил. |
|||
|
||||
akul |
|
||||
Unregistered |
Тут важно понять, что делить надо не "дизайн от программы", а декларативные и процедурные описания. Это в общем. Шаблоны в общем случае эту задачу не решают и решить не могут. Но то, что они делают, прекрасно делает тот же include "кусок дизайна.html" в нужном месте метода класса компонента. А имя переменной {в фигурных скобках} ничем не лучше <?=таких скобок?> с точки зрения понятности дизайнеру. А хуже тем, что добавляет совершенно лишний промежуточный слой с дополнительными глюками и тормозами. И заметьте - когда верстальщику "станет мало" и раз уж он взялся изучать процедурные конструкции, ничто не мешает ему сразу изучить <? for(...) ?> вместо доморощенных шаблонных аналогов со своим синтаксисом.
Давать ему доступ к частям дизайна, включаемым внужных местах. Всё это делается в рамках ООП. Иллюстрация самого простого способа : <? require_once 'page.class.php'; class SitePage extends Page { function PrintHeader($args){?> дизайн-дизайн-дизайн <?} function PrintFooter($args){?> дизайн-дизайн-дизайн <?}}?> |
||||
|
|||||
Dr.Death |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 950 Регистрация: 15.7.2003 Где: Волгоград Репутация: нет Всего: 1 |
Чем же это он такой плохой и ненадежный, можно узнать?:? -------------------- Жизнь коротка, чтобы быть в ней слабым.© Арнольд Шварцнеггер |
|||
|
||||
Secandr |
|
|||
![]() Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 5 Всего: 39 |
Ясное дело, что файлы называются:
my_file.class.php или my_file.inc.php Минус ООП - дольше работает ![]() |
|||
|
||||
akul |
|
|||
Unregistered |
ну, что касается PHP - может быть.. В общем случае неверно, всё как раз наоборот. Компилятор, имея куда больше информации о данных, можут гораздо лучше оптимизировать код. Оверхед обычно возникает оттого, что с использованием ООП мы можем делать вещи, о которых без оного только мечтали, сооответственно типична стельба из пушки по воробьям. Но это не свойство ООП, а особенность психологии. Это о компьютере. Что касается программиста, то ООП не просто ускоряет, а кардинально ускоряет работу. |
|||
|
||||
akul |
|
|||
Unregistered |
боюсь, что если написанного в скобках недостаточно для понимания, то поможет только личное освоение более правильных способов, после чего вопрос отпадет сам собою. |
|||
|
||||
Dr.Death |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 950 Регистрация: 15.7.2003 Где: Волгоград Репутация: нет Всего: 1 |
Я что-то не понимаю, ненадежность - это значит, что не надо параметры вручную через URL таскать? P.S.
Кинь ссылку, я хочу просветиться. -------------------- Жизнь коротка, чтобы быть в ней слабым.© Арнольд Шварцнеггер |
||||
|
|||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: нет Всего: 232 |
Не-ет, это же значит сунуть голову в микроволновку! ![]() Так мы дадим возможность любому человеку, с доступом к админовской странице, сделать всё что угодно - начиная от закачки произвольного файла на наш сервер, заканчивая установкой скрипта-фильтра всех входящих и исходящих GET/POST -- что например для магазина равносильно смертному приговору с судебными разбирательствами. Чем хорош "слоёный пирог" из Smarty/ООП - это тем, что каждый слой занимается только своим делом, и не имеет доступа к базовым функциям другого слоя. Так, наш дизайнер никогда не сможет сделать ни шага влево, ни шага вправо от HTML/TPL (не дадим мы ему PHP, и всё тут), и вместе с тем у него в руках будет вся мощь языка PHP, спрятанная на более низком слое/уровне (где работает программер). Вот в чем соль template-подхода. -------------------- ![]() |
|||
|
||||
Secandr |
|
|||
![]() Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 5 Всего: 39 |
akul>> в том и дело. PHP - не компилятор
![]() И ООП в нём реализовано не лучшим образом. Насколько я помню историю пхп, он первоночально создавался без поддержки ооп, затем ооп притянули за уши к пхп. |
|||
|
||||
akul |
|
|||
Unregistered |
статьи, хорошие своей популярностью: http://spectator.ru/technology/php/easy_templates http://spectator.ru/technology/php/user_friendly_urls |
|||
|
||||
akul |
|
|||
Unregistered |
Прежде всего нам надо хорошо подумать, что и от кого мы защищаем. Итак, чайник дизайнер, не способный запрограммировать цикл, у нас превратился в злобного хакера, способного обойти safe mode и нафигачить нам гадостей на сайте. Ну что тут сказать? 1. Уверяю тебя, что шаблоны не являются панацеей от этого, и "вся мощь PHP" в руках дизайнера и "безопасность сайта" - вещи взаимоисключающие, сколько бы там слоев не прокладывали. 2. Приведённый кусок - только иллюстрация, где я не рассматривал вопросы защиты сайта от кого-бы-то-ни-было. Вопросы защиты в простейшем случае "разрешаем ему в дизайн переменные вставлять" решаются одним оператором типа: if(preg_match("/<"."\\?[^=]/",$template)) trigger_error("Обломись!",E_USER_ERROR); (Обращаю внимание, что это тоже _иллюстрация_. Это обходится, но я не собираюсь тут "Enterpise ready" движок сайта эпистолярничать. Я только показываю направление.) |
|||
|
||||
Master |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1530 Регистрация: 13.5.2003 Где: Mother Russia Репутация: 8 Всего: 10 |
akul ну ты прям у нас белая ворона...
Во первых я не понимаю.... как ты будеш искать дыры в скриптах для работы которых требуются GET параметры... также для меня загадка где Лебедев про такое писал. -------------------- Вавилон, Вавилон Что ты построил, что разрушил? Вавилон, Вавилон Плавятся души дьявольским огнем. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |