Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: разработка для Web > Как выполнить скрипт в html файле


Автор: d0k 11.7.2005, 05:07
Подскажите как сделать так, чтобы часть скрипта на перле запускалась прямо в html файле (какие теги или модули нужны) или что-бы htm файл (например index.html) запускался как скрипт (как .pl .cgi). Прошу учесть, что сервер не мой и поэтому любые изменения в настройках сервера я сделать не могу.

Автор: korob2001 11.7.2005, 08:08
Можно, воспользоваться SSI, можно просто перенаправлять пользователя на программу Perl, можно установить модуль Mason и встраивать Perl прямо в страницу, если задачи которые выполняет Perl программа не слишком сложная, можно воспользоваться PerlScript.
Что конкретно делает твоя программа Perl???

Автор: d0k 12.7.2005, 02:39
Цитата(korob2001 @ 11.7.2005, 08:08)
Можно, воспользоваться SSI, можно просто перенаправлять пользователя на программу Perl, можно установить модуль Mason и встраивать Perl прямо в страницу, если задачи которые выполняет Perl программа не слишком сложная, можно воспользоваться PerlScript.
Что конкретно делает твоя программа Perl???

Модуль Mason сам поставить не могу так-как сервер не мой только хостинг там куплен. Перенаправление на перл файл тоже мне не подходит. Сам скрипт простой типа статистику о переменных окружения в файл записывает. Подскажи теги для PerlScript и на всех ли серверах его можно использовать?
Как проверить стоит ли Mason (с помощью каких-либо действий на перле)?

Автор: korob2001 12.7.2005, 09:14
Цитата

Модуль Mason сам поставить не могу так-как сервер не мой только хостинг там куплен.

А ты не пробовал писать в службу поддержки? Если хост платный, они просто обязаны прислушаться к твоей прозьбе. Хотя ставить Mason, только для работы одного скрипта, нет смысла.
Цитата

Сам скрипт простой типа статистику о переменных окружения в файл записывает.

Если тебе что-то нужно записывать в файл, то с PerlScript ничего не выйдет, так как он работает на клиенте, такк же как и JavaScript, да и поддерживает его пока только IE.
Воспользуйся SSI включениями, если хост куплен, то серверер наверняка поддерживает работу с SSI. Вобщем пишешь обычную программу, как обычно ложишь её в cgi-bin, а затем в html код вставляешь строку типа этой:
Код

<!--#include virtual="/cgi-bin/your_script.pl" -->

Вполне возможно что придётся поменять расширение файла с html или htm, на shtml. Об этом можешь почитать в правилах своего хоста.

Автор: d0k 12.7.2005, 16:54
Спасибо за совет.
Может подскажешь, с твоей точки зрения, что лучше из модулей использовать для создания простой программы для рассылки писем. Программа типа - юзер регистрируется а затем получает новости на e-mail. Я с этим раньше не когда не сталкивался так что не знаю где больше подводных камней будет.
Конечно лучше наверно с использованием sendmail smile

Автор: sharq 13.7.2005, 00:59
d0k, на справочной странице хостинга написано что и как хостинг поддерживает.
Наверняка, хостинг поддерживает исполняемые файлы, которые находятся в директории cgi-bin (например, perl-скрипты), ssi-страницы (часто имеют расширение *.shtml), доступ к sendmail и прочее.

Цитата(d0k @ 11.7.2005, 05:07)
Подскажите как сделать так, чтобы часть скрипта на перле запускалась прямо в html файле (какие теги или модули нужны) или что-бы htm файл (например index.html) запускался как скрипт (как .pl .cgi).

Просто создаешь perl-срипт, который генерирует html-страницу (содержащий заголовок и содержание страницы). Примеров можно найти масса.

Цитата(d0k @ 11.7.2005, 05:07)
Прошу учесть, что сервер не мой и поэтому любые изменения в настройках сервера я сделать не могу.

На счет этого ты глубоко заблуждаешься!
Конечно, есть упрямые сисадмины, но после долгого натиска и они сдаются. smile
Если сисадмин все-таки отказал, не проблема - используй для подстроек сервера - .htaccess (обычно хостинг поддерживает).
Цитата(d0k @ 12.7.2005, 02:39)

Модуль Mason сам поставить не могу так-как сервер не мой только хостинг там куплен

Можно поставить почти любой модуль самому, стоит только попробовать (но бывают исключения).

Цитата(d0k @ 12.7.2005, 02:39)
Подскажи теги для PerlScript и на всех ли серверах его можно использовать?

Читай соответствующую доку.
Если ты установил ActivePerl, то file:///диск:/путь/к/perl/html/Components/Windows/PerlScript.html.
Если с английским туго, то Lingvo или Prompt тебе поможет. smile


Цитата(d0k @ 12.7.2005, 16:54)
Может подскажешь, с твоей точки зрения, что лучше из модулей использовать для создания простой программы для рассылки писем. Программа типа - юзер регистрируется а затем получает новости на e-mail. Я с этим раньше не когда не сталкивался так что не знаю где больше подводных камней будет.

Модулей масса, выбирай, что тебе больше подходит.
Посмотри http://cpan.uwinnipeg.ca/search?query=mail&mode=dist.
Например, модуль MIME::Lite или Mail::Sendmail.

smile

Автор: korob2001 13.7.2005, 01:21
Цитата

Может подскажешь, с твоей точки зрения, что лучше из модулей использовать для создания простой программы для рассылки писем.

Честно говоря, я бы написал её без использования сторонних модулей, ну может пригодился бы DBI и CGI, первый что бы получать из базы E-mail адреса, на которые нужно отправлять, а второй для генерации HTML-интерфейса. Ну а если уж хочется и для отправки письма заюзать какой-нить модуль, то попробуй Mail::Sendmail.

Автор: d0k 16.7.2005, 00:07
Цитата(korob2001 @ 13.7.2005, 01:21)
Честно говоря, я бы написал её без использования сторонних модулей, ну может пригодился бы DBI и CGI, первый что бы получать из базы E-mail адреса, на которые нужно отправлять, а второй для генерации HTML-интерфейса. Ну а если уж хочется и для отправки письма заюзать какой-нить модуль, то попробуй Mail::Sendmail.

Спасибо за предыдущий совет. Просто на моём хостинге только файлы с расширением .shtml можно писать с SSI.
Насчёт мыла - ты говориш без модулей, но просто напрямую с сокетами больше возьни а результат тотже. Модуль просто как помощник. Но перебрав несколько (я удивился что в cpan столько модулей для мыла - сотни) действительно sendmail да бест.
Если я не прав то ответь опираясь на свой опыт.
Добавлено @ 00:15
Цитата(sharq @ 13.7.2005, 00:59)
Цитата(d0k @ 12.7.2005, 02:39)

Модуль Mason сам поставить не могу так-как сервер не мой только хостинг там куплен

Можно поставить почти любой модуль самому, стоит только попробовать (но бывают исключения).

Подскажи как на хостинге поставить модуль самому smile
Через shell smile
Ладно, perl Makefile.PL через сам же скрипт можно попробовать запустить.
А как я make сделаю smile

Автор: sharq 16.7.2005, 00:41
d0k а мне можно ответить smile , опираясь на свой опыт.

Если хочешь написать скрипт, который отправляет письма не зависимо от того есть sendmail или нет, то пиши используя сокеты (либо на прямую use Socket, IO::Socket, либо с помощью дрю модулей).

Иначе юзай sendmail в любом виде, будь-то через модуль (например, MIME::Lite) или на прямую.

Все зависит от того, какой подход тебе больше нравится, какой модуль больше понраву.
Так что экспериментируй, пробуй и будет тебе счастье. smile

Я уже писал где-то на форуме. Вот в кратце:
Код
perl Makefile.PL prefix=$HOME/библиотеки
make
make test
make install

И теперь в скрипте:
Код
#!/usr/bin/perl -w
use lib 'полный_путь_от_корня_к/библиотеки/lib/site_perl/5.6.0/i386-linux'


Концовка может измениться, все зависит от того, где находится исходник модуля.

Надеюсь, понятно. smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)