![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
FlyBird |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 28.3.2007 Репутация: нет Всего: нет |
Здравствуйте!
По общему принципу сайт использует технологию SSI, т.е. в каждом файле с расширением *.shtml имеется код <!--Include Virtual= "_header.inc"--> < .... код страницы... > <!--Include Virtual= "_footer.inc"--> На сайте функционирует гостевая книга (обычный скрипт, который пишет в базу отзыв посетителя и требует правильного заполнения полей в форме отзыва). Собственно проблема в ней. Если пользователь ошибается в каком-либо поле, скрипт выполняется и выдает пользователю новую форму с указанием ошибки в поле(ях). Чтобы повторить структуру сайта использования шаблонной технологии, сейчас приходится открывать файлы _header.inc и _footer.inc из скрипта и читать их содержимое, а только потом отдавать клиенту. Если пользователей больше 20, то такие тормоза. Что-нибудь можно предпринять в данном случае? |
|||
|
||||
korob2001 |
|
||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
А зачем открывать файлы .inc, если они выводятся через SSI?
Если я правильно понимаю, то примерно так выглядит файл SSI, гостевой книги?
Проблема скорее всего в том, что в теге <form> в атрибуте action указан путь не на сам SSI файл, а на Perl программу. Потому именно в этот момент приходится генерировать весь контент именно программой Perl. Для примера пишем простейшую готевую книгу: В каталоге www создадим каталог guest, в него положим три файла _header.inc, _footer.inc и .guest.shtml. Вот так будут выглядеть эти файлы: _header.inc
_footer.inc
guest.shtml
Теперь перейдём к Perl программе. Для неё создадим каталог /cgi-bin/guest и в него положим файл guest.pl, вот так он будет выглядеть:
Теперь запускаем наш SSI файл: http://localhost/guest/guest.shtml Если всё сделал правильно увидешь форму, которую нам генерирует Perl программа. В неё введи сообщение и попробуй сделать ошибку. Скажем укажи Email без @. Заметь, что после получения ошибки мы остались всё на той же SSI страничке, на которой и были перед отправкой сообщения. Теперь поправь поле в котором была обнаружена ошибка и отправь данные снова. Если ошибок больше нет, то программа запишет их в файл и сгенерирует форму+сообщения, которые были успешно добавлены, всё на тойже SSI страничке. PS: Если книга которая тормозит, работает по такому же принципу, то Perl программа вообще не должна даже знать о существовании файлов _header.inc и _footer.inc и уж тем более не должна открывать их при каждом запросе. PSS: Если ничего не понятно, то могу прокоментировать код. Просто у нас уже 5:40 утра, а я ещё не ложился, потому не написал коментарии сразу. Это сообщение отредактировал(а) korob2001 - 1.4.2007, 06:52 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||||||||
|
|||||||||||
FlyBird |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 28.3.2007 Репутация: нет Всего: нет |
Спасибо, огромное! Мир не без добрых людей!
Именно так и хотелось сделать, только не знал как именно. Код не проверял пока в реальности, но проверю обязательно! Принцип основной именно такой. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl: CGI программирование" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |