Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » mod_perl: Вставка баннера во все страницы

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Simulakron



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Помогите плиз!
Есть перловски код .
################################################
package Apache::Footer;
# file: Apache/Footer.pm
use strict;
use Apache::Constants qw(:common);
use Apache::File ();
sub handler {
   my $r = shift;
   return DECLINED unless $r->content_type() eq 'text/html';
    my $file = $r->filename;
    unless (-e $r->finfo) {
      $r->log_error("File does not exist: $file");          return NOT_FOUND;
   }
   unless (-r _) {
      $r->log_error("File permissions deny access: $file");
      return FORBIDDEN;
   }
    my $modtime = localtime((stat _)[9]);
    my $fh;
   unless ($fh = Apache::File->new($file)) {
      $r->log_error("Couldn't open $file for reading: $!");
      return SERVER_ERROR;
    }
   my $footer = <<END;
<hr>
&copy; 1998 <a href=">http://www.ora.com/">O'Reilly &amp; Associates</a><br><em>Last Modified: $modtime</em>
END
    $r->send_http_header;
    while (<$fh>) {
      s!(</BODY>)!$footer$1!oi;
   } continue {
      $r->print($_);
   }
    return OK;
}
1;
__END__
 
Он вставляет что-то в конец каждой страницы.
В httpd.conf пишу
 
<Location /footer>
 SetHandler perl-script
 PerlHandler Apache::Footer
</Location>
В Location указываю путь где лежат страницы к которым надо прикрепить.
Но ничего не происходит на страницах.
никаких изменений.
 
Я пытаюсь пихнуть баннер на ВСЕ страницы своего сайта.
сначала использовал функцию auto_append_file в  php.ini.
Все работало на баннер портил счетчик.
Затем в нете напоролся на вышеуказанный код.Попытался заюзать его но пока безрезультатно.
Кто-нибудь подскажите где в чем проблема!
Или если можете приведите пример вставки баннера во ВСЕ страницы.ОЧЕНЬ НАДО!!

Всего записей: 83 | Зарегистр. 12-09-2005 | Отправлено: 12:03 16-09-2005
batva



crazy administrator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
PerlHandler Apache::Footer  

 
А у тебя mod_perl установлен?

Всего записей: 12593 | Зарегистр. 07-01-2001 | Отправлено: 21:50 16-09-2005
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Или если можете приведите пример вставки баннера во ВСЕ страницы.ОЧЕНЬ НАДО!!

Apache: добавить баннер на все сайты

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:37 16-09-2005
Simulakron



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
mod_perl стоит.
в самом скрипте есть ошибка?
и почему нет никаких изменений после добавления в httpd.conf приведенные строчки?

Всего записей: 83 | Зарегистр. 12-09-2005 | Отправлено: 15:51 17-09-2005
batva



crazy administrator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Simulakron

Цитата:
в самом скрипте есть ошибка?  

Ошибок не видно, все должно работать.
Разве что вот тут
s!(</BODY>)!$footer$1!oi;
довавление происходит перед тегом </body> если этого тега нет, то и добавляться ничего не будет.
 
Он у тебя есть?
 

Цитата:
и почему нет никаких изменений после добавления в httpd.conf приведенные строчки?  

покажи свой конфиг полностью.

Всего записей: 12593 | Зарегистр. 07-01-2001 | Отправлено: 18:23 17-09-2005
Simulakron



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
В кофиг файле пишу следующее:
 
<Location /home/>
Set Handler perl-script
Perl Handler Apache::Footer
</Location>
 
Добавлено:

Цитата:
 
Apache: добавить баннер на все сайты
 

Тут указывается как делать вставку на html страницы а мне нужно для php

Всего записей: 83 | Зарегистр. 12-09-2005 | Отправлено: 10:56 19-09-2005
batva



crazy administrator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Simulakron

Цитата:
а мне нужно для php

упс..
тогда этот скрипт, что выше не подходит!
 
Добавлено:
 
Вот еще есть вариант - mod_layout

Всего записей: 12593 | Зарегистр. 07-01-2001 | Отправлено: 18:51 19-09-2005
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
batva

Цитата:
Вот еще есть вариант - mod_layout

зачем? я же дал линк.
зы: думаю, что лучше продолжать там.
 
Simulakron
 
для php - идешь в php.ini и смотришь такую строку

Цитата:
; Automatically add files before or after any PHP document.
auto_prepend_file =
auto_append_file =

правда тогда проблемы будут в случае выдачи заголовков, я думаю..
хотя делается так.. в prepend включаешь буферизацию вывода (если скрипт не дает выдачи файла - так как тогда сожрет памяти немало), в append берешь содержимое и регекспом вставляешь баннер там, где тебе нужно.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:00 19-09-2005 | Исправлено: Cheery, 20:04 19-09-2005
Simulakron



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery
Как раз при выдаче заголовков роблемы и появляются.
Я использовал этот вариант как один из первых.
Когда же добавляешь баннер в конец страницы,то он паганит последний скрипт.Например у меня в конце есть счетчик посещаемости ,написанный на пхп.
Баннер его сожрал .
На счет mod_layout я слышал но не знаю как его применить,то есть что надо,чтобы его подключить.(Не судите строго,с этим столкнулся очень не давно,а до этого вообще этим не знанимался).
Когдя начал использовать пример из данной тобой страницы-ничего не получилось.
К тому же там только с html страницами можно оперировать.
 
Кто нибудь знает как использовать mod_layout. Читая про него в документации,становится очевидным что он мне и нужен. (Или я обманываюсь?)
Люди,SOS!
 

Всего записей: 83 | Зарегистр. 12-09-2005 | Отправлено: 11:35 22-09-2005
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Simulakron

Цитата:
Как раз при выдаче заголовков роблемы и появляются.  

не будет проблем, если включишь буферизацию.
www.php.net/ob_start

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:56 22-09-2005
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » mod_perl: Вставка баннера во все страницы


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru