Pers.narod.ru. Perl

Раздел содержит мои скрипты, написанные на Perl. Писалось всё это довольно давно. К сожалению, хостинг narod.ru не позволяет продемонстрировать Perl в работе. Об установке Perl на локальной машине под Windows и типичных проблемах при закачке Perl-скриптов на хостинг говорится в этой статье.
См. также: PHP

Скрипты на Perl

Все скрипты должны компилироваться в Perl 4 и выше. Все скрипты задуманы как мультиплатформенные, т.е., исполняющиеся как на Windows IIS, так и на *nix-серверах. Почти во всех скриптах настройка ведется через файл config.pl - проверьте его перед использованием скрипта! Если такого файла нет, настройки - в начале файлов *.pl скрипта.

Все скрипты выложены настроенными на локальный хост по адресам http://127.0.0.1/cgi-bin/ИмяСкрипта/index.pl (в Windows IIS - папка c:\Inetpub\wwwroot\cgi-bin\ИмяСкрипта). На этой папке для интернет-пользователя достаточно прав на чтение и исполнение скрипта (в архиве скрипта соответствующие данные лежат во вложенной папке cgi-bin). Предполагается, что данные скриптов хранятся в папках /usr/local/inetdata/ИмяСкрипта, что позволяет не менять настройки путей при копировании на Unix или FreeBSD-сервер. Нужные файлы в архиве скрипта располагаются в inetdata. В этой папке, которая не видна через дерево каталогов www, для интернет-пользователя должны быть установлены права на изменение файлов (права 777)! Это обеспечивает достаточную безопасность скриптов. Те же права ставятися на все папки, вложенные в inetdata.

На локалхосте Windows нетрудно создать папку \usr\local\inetdata в корне диска c:, а затем дать соответствующие права на это поддерево папок юзерам IUSR_USER и IWAM_USER, то есть, учетным записям сервера IIS.

Ряд скриптов использует также собственные коллекции картинок. В целях безопасности и совместимости, предполагается, что картинки скрипта хранятся по адресам http://127.0.0.1/images/ИмяСкрипта (в Windows IIS - папка c:\Inetpub\wwwroot\images\ИмяСкрипта). В этой папке достаточно прав на чтение файлов для всех. Если у скрипта есть такая коллекция картинок - она лежит во вложенной папке images внутри архива.

В ряде скриптов по тексту может встречаться URL 127.0.0.1, не забудьте поменять его на свой.

Почти все скрипты администрируются непосредственно через www. Везде, где для доступа к функциям администратора требуется пароль, он установлен как "123" - не забудьте поменять! Логин администратора, если он предусмотрен, установлен в значение "admin". В ряде скриптов администрирование ведется через скрытый скрипт - тогда он имеет имя 123.pl, которое, естественно, Вы также поменяете. Не забудьте проверить, что чтение содержимого каталога на Вашем сервере запрещено (по умолчанию это так и есть).

Везде предполагается, что для скриптов настроено расширение .pl, а в файлы, исполняемые по умолчанию, включен файл index.pl

Все скрипты обкатаны "в полевых условиях" на реальных серверах. Если что-то не работает - с вероятностью 99% Вы не настроили права или пути к файлам.

1. Homepage. Полностью интерактивная страница на Perl - при входе на страницу загружает случайные факт из биографии, ссылку из коллекции, анекдот. Содержит гостевую книгу, набор фотографий (они должны быть с именами 1.jpg, 2.jpg и т.д., размещены в папке скрипта, а количество их прописано в переменной $photos) и возможность добавления на страницу своих заметок. Позволяет через www добавлять и удалять факты, ссылки, анекдоты, заметки и записи гостевой (нужен пароль администратора). В некоммерческой версии нет загрузки картинок через www. (homepage.zip, 509 Кб)

2. Birthday. База данных дней рождения. С помощью этого скрипта мы можем поддерживать базу данных дней рождения наших друзей или сослуживцев, оставлять им на сервере открытки с картинками, отправлять тексты этих открыток по почте. Отправка уведомлений по почте реализована через библиотеку SMTP. Свою информацию можно редактировать, пользуясь паролем. Администрирования со стороны веб-мастера в некоммерческой версии нет. Есть поиск по базе. (birthday.zip, 368 Кб)

3. DR. Еще одна база данных дней рождения. Здесь пользователи добавляют записи (псевдоним или фамилия, день, месяц, и, возможно, год рождения и комментарий, во временную базу, администратор же может удалить эти записи, либо перенести их в основную базу. Основную базу также можно при желании редактировать (удалять записи). В комментариях разрешен HTML. Есть поиск по базе, удобная ссылка "а кто родился сегодня?". (dr.zip, 16 Кб)

4. Простой чат "Место встречи". Мой первый чат на Perl+JavaScript :-) Есть возможность регистрации и изменения настроек (пароль, цвет, начертание шрифта - жирный или курсив), копирование ника, доска объявлений, где можно назначить встречу выбранному посетителю. Обновляется быстро, т.к. на стороне клиента по таймауту :-) Администрирования в некоммерческой версии нет. Кроме настройки прав на папку данных, пользователю Интернет нужно также дать права 777 для файла left.html из папки скрипта. (chat1.zip, 17 Кб)

5. Чат с картинками. "Продвинутый" чат с регистрацией, набором картинок, профилями, фильтрами на мат, приватами и оставлением сообщений на сервере, идущими часами и проч. Не забудьте настроить config.pl, как и везде ;-) (chat.zip, 82 Кб)

6. Простой счетчик. Позволяет подсчитать количество посещений определенного числа страниц (см. переменную $maxnum). Повторные заходы с одного IP не считаются в течение $timeout секунд. Для работы счетчика должны быть включены директивы SSI - см. файл test.html Для включения SSI на Windows-сервере достаточно на расширение .html поставить ту же библиотеку, что стоит на .shtml по умолчанию. (count.zip, 1 Кб)

7. Сервер-дневник. Очень простой, но функциональный скрипт. Построен на 2 фреймах. Слева - поиск, сортировка, управление количеством выводимых записей, динамическое дерево тем. Справа - содержимое выбранной слева темы или результаты поиска. Изменение информации защищено паролем. Можно менять через www и дерево тем (посмотрите как, думаю. понять несложно). Все данные хранятся в отдельных файлах html. (notes.zip, 23 Кб)

8. Сервер заметок. Что-то среднее между дневником и форумом. Поддерживается произвольное количество тем, в каждой из которых могут быть сообщения. Пользователи могут предлагать свои записи в Ваши темы, а также новые темы обсуждений, Вы (администратор) можете по своему усмотрению добавлять или не добавлять, а также редактировать добавленную информацию. Web-администрирование. Подходит для "односторонней" переписки с пользователями, ведения базы коротких сообщений (например, анекдотов). (dots.zip, 13 Кб)

9. Линейный форум. Хранит все данные в одном файле, срок хранения данных - не более 30 дней, можно раскрывать тему для чтения текста и ответов, администратор может убивать темы. Для добавления Вашего верха и низа страницы измените тексты подпрограмм (sub) html_head, html_end (forum1.zip, 5 Кб)

10. Форум на 3 фреймах. Левый фрейм- это список тем, правый верхний - оглавление темы, а правый нижний - выбранное сообщение. Есть возможность отвечать на сообщения. Для настроек дизайна отредактируйте файлы из папки cgf. Администрирование идет через "секретную" страницу, имя которой не должно быть очевидным - просто переименуйте соответствующий файл (сейчас 123.pl) Есть поиск по сообщениям. Для определения того, что печатается в правом верхнем фрейме при запуске форума также придется, возможно, поменять HTML в файле message.pl (forum.zip, 47 Кб)

11. Гостевая книга v.1.2. Несложная гостевая с администрированием и "смайликами". Отслеживается корректность добавляемых сообщений. Администратор может отвечать на сообщения и редактировать их, а также банить плохишей по IP. Отслеживается превышение длины сообщения, заполнение обязательных полей, попытки повторного добавления. В config.pl есть список стоп-слов @bad_words, куда можно включать маты и ключевые слова спамеров. В версии 1.2 элементарная защита сообщений кодом, не требующая подключения модулей (от ботов, по крайней мере у меня, помогает). Как и везде - настраиваемые файлы верха и низа страницы с сообщениями. (gbook.zip, 19 Кб)

12. Открытый каталог ссылок. Пользователи добавляют ссылки, администратор добавляет и редактирует ссылки и разделы. Все клики по ссылкам считаются для рейтинга, рейтинг защищен от "накруток". Возможность сортировки ссылок по алфавиту, дате добавения и рейтингу. Легкая настройка параметров и верха-низа страницы. (linker.zip, 20 Кб)

13. Открытый каталог ссылок-2. Более простой вариант каталога. Также есть администрирование, причем с возможностью добавления разделов через www. Если проблемы с добавлением разделов - проверьте что в конце файла topics.txt из папки данных есть пустая строка :-) (linker1.zip, 10 Кб)

14. Рассылка новостей. С администрированием, возможностью рассылки plain-text или HTML. Настройки в начале файла mail.pl, вызывается файл form.html (если измените путь к нему, не забудьте изменить и URL файла mail.pl в опции action тага формы). Админ может ввести пароль в поле E-mail. (list.zip, 17 Кб)

15. Телефонный справочник. Удобный поиск по фамилиям, телефонам и подразделениям (1 уровень подразделений) Вашей организации. Есть возможность администрирования (с паролем). Файл подразделений также администрируется через www. (phones.zip, 5 Кб)

16. Скрипт чтения случайных анекдотов.. Подключает неограниченное количество файлов, запоминает для каждого IP и каждого файла текущее состояние чтения (скрипт read.pl). Для подробной информации запустите index.pl без параметров. Настройка отличается от стандартной - поставьте пользователю Интернет права 777 только для файла ip.txt "Бонус" - скрипт form.pl, который умеет по текстовому файлу (Windows-1251, записи разделены пустыми строками, можно использовать таги) формировать html-файл такой же, как в "советах дня" Internet Explorer 5. (random.zip, 63 Кб)

17. База данных выпускников. Простая и удобная база с поиском для ведения журнала выпускников Вашего ВУЗа или техникума. Пользователи могут добавлять и запароливать свою информацию. Есть администрирование с возможностью менять любую информацию. Факультеты и возможные номера групп настраиваются через массивы @fac, @groups в config.pl (reg.zip, 8 Кб)

18. Поисковая машина. Простой в настройке и удобный в работе поисковик по сайту. После настройки config.pl, перед использованием поисковика запустить reindex.pl из той же папки (и делать это каждый раз, когда нужно обновить информацию для поиска). Поисковик создаст в своей папке ряд служебных файлов. Форму можно взять из HTML, сформированного самим поисковиком. (search.zip, 8 Кб)

19. Сервер удаленного тестирования знаний. Поддерживает любое количество тестов. Может начслять баллы произвольно, вопросы теста можно сопровождать картинками, есть возможность полного редактирования теста через www (предварительно папка теста должна быть создана администратором - это также можно сделать через www; ограничение некоммерческой версии - нельзя удаленно загружать картинки тестов). Запоминает текущее состояние тестирования для каждого теста и каждого IP, в конце выставляет оценку. начать повторное тестирование с этой машины можно только после введения пароля владельцем теста (что позволяет получать "реальную" оценку, а не подобранную методом проб и ошибок). (test.zip, 35 Кб)

20. Сервер голосований. Произвольное количество тем, возможность добавления тем и вариантов ответа пользователем (можно запретить или разрешить), защита от "накруток" по IP; настройки в начале index.pl (это и сам скрипт) (vote.zip, 7 Кб)

21. Форма-заявка. Форма для отправления с Web-страницы заявки на участие в конференции по E-mail. Настройки в начале файла index.pl. Проверка заполнения, запоминание уже заполненных полей. В демке число заполняемых полей фиксировано. Статистика накапливается в файле msg папки данных. (mailform.zip, 16 Кб)

22. База данных патентов. База для хранения информации о патентных разработках. Поиск по любому полю, возможность вывода по "порциям" всей базы, в результатах поиска есть ссылка "Подробнее". Число полей фиксировано. Админки в некоммерческой версии нет, но файл базы легко получить даже в Excel (разделитель записей - табуляция). (patents.zip, 134 Кб)

23. Отправка E-mail на любой из нескольких адресов. Скрипт для отправления с Web-страницы сообщения на один из списка адресов E-mail. Пример формы - в файле form.html (впишите свои адреса!). Защита от флуда повторной отправкой. (putmail.zip, 15 Кб)

24. База данных по защитам диссертаций. Скрипт для публикации объявлений о предстоящих защитах диссертаций. К объявлению можно прикрепить файл с авторефератом, который грузится в папку upload в корне сервера (права на эту папку должны быть 777). По истечении срока публикации объявления можно удалять вместе с авторефератами. Администрирование ведется через скрытый скрипт, сейчас он называется 123.pl, не забудьте поменять имя и ссылку на скрипт в load.pl! (т.к. c директивой require загрузка из Perl не получается; по той же причине в load.pl нужно прописать прямой путь к папке upload на сервере, например, /usr/local/www/upload/) Прочитайте также readme.txt, если закачанные на сервер файлы "криво" с него скачиваются. (upload.zip, 7 Кб)

25. Антиспамерский скрипт :-) Точней, антиботовый. Простой, так как сделан за полчаса.
Все просто:
Ставим скрипт к себе на сервак, делаем на него ссылку.
Можно ссылку с параметром в виде
http://your.domain.com/cgi-bin/script.pl?n=10000
получаем n случайных адресов для спамбота, которыми он засоряет свою гнусную базу... n может быть от 1000 до 100000, при желании меняйте цифры на любые другие, называйте скрипт любым другим именем, главное, чтоб спамеры замучились фильтры ставить на выдачу этого скрипта.
По умолчанию при запуске без параметра n=1000
При желании меняем данные в $min, $max, $symbols, @titles в теле скрипта.
Развивайте исходники... у меня реальным выбирается только домен верхнего уровня, адрес генерится в виде spam@spam.domain
Если на каждой странице Рунета будет такой вход для ботов, базы спамеров загнутся :-) Вот вам новая интернет-мода :-)
Если лень ставить скрипт, просто ставьте ссылку вида
Наши контакты (это и скрипт в работе) (emails.zip, 2 Кб)

26. Тест-шутка "о преодолении негативных сторон личности" :-)
Такие шутки-штуки периодически пользуются популярностью, вот откопал и свой "первоисточник".
Вы отвечаете на 11 вопросов, программа ставит "диагноз"... при желании легко разобраться, как это работает, и сделать свой template.txt для другого теста. Настроек у скрипта нет, ставится в любую папку. (letter.zip, 3 Кб)
Пройти тест онлайн можно здесь: тест

Рейтинг@Mail.ru

вверх гостевая; E-mail