13 лет назад 3 августа 2005 в 20:42 71

Если у вас наконец появилось время, чтобы заняться собственной страницей, то приведенная ниже подборка скриптов поможет вам превратить свой сайт из серого безликого “хомяка” в привлекательный для посетителей ресурс.

ФОРУМ
Интернет-форум должен быть удобным, красивым и интуитивно понятным. Создать и обустроить такой позволит phpBB – пожалуй, самый популярный в Сети движок, на котором работает чуть ли не треть всех форумов. Это не удивительно, ведь он давно зарекомендовал себя как надежный, удобный, производительный и легко интегрируемый в существующую структуру сайта движок. Отсутствие ограничений на количество веток форума не даст заскучать посетителям, а расширенные средства форматирования текста придадут сообщениям изящество и элегантность.

Широчайшие административные возможности, представленные в интуитивно понятной форме, обрадуют самого строгого модератора, а система безопасности заставит спать спокойно любого параноика. Дизайн форума радует глаз, а огромное количество “шкурок” позволит даже самому привередливому эстету выбрать подходящее оформление.

Впрочем, ничто не мешает сделать его и самостоятельно. Использование шаблонов и CSS полностью отделяет оформление от кода, и подогнать дизайн форума под ваш сайт не составит труда. Среди поддерживаемых языков интерфейса нет разве что суахили, а локализация форума сводится к копированию нужного языкового пакета в соответствующую директорию.

Установка форума занимает пару минут, а подробнейшая инструкция не даст запутаться даже новичку. Всего-то и нужно, что скачать последнюю версию форума с официального сайта www.phpbb.com или с его русскоязычного аналога www.myphpbb.com.ru, распаковать архив и залить его содержимое на ваш хостинг. После этого запустите установочный скрипт, который предложит вам ответить на несколько несложных вопросов вроде пароля администратора форума или параметров базы данных (среди поддерживаемых – MySQL , PostgreSQL, Microsoft SQL Server, Microsoft Access и другие) – и все, движок готов к работе.

Уязвимые места phpBB
С завидной периодичностью в Сети появляются сообщения об очередной “дыре” в движке форумов на базе phpBB. В начале года кулхацкеры провели массированные атаки на ряд форумов, воспользовавшись SQL-injection и XSS-атакой. Причины, по которым эти атаки стали возможными, – неаккуратная проверка имен пользователей, а также потенциальное исполнение кода на сервере из-за ошибок в обработке параметра highlight в модуле viewtopic.php.

В то же время было обнаружено уязвимое место при обработке спецсимволов в строке URL. Тогда сетевая шпана выполняла произвольные SQL-команды и php-код на уязвимой системе, например, viewtopic.php?t=1&highlight=%2527. Некоторые владельцы хост-площадок принудительно блокировали работу форумов своих клиентов до выхода очередной “заплатки”. Справедливости ради заметим, что патчи разработчики выпускают довольно оперативно.

ЧАТ
Прежде всего, чат должен быть быстрым, иначе потеряется динамика беседы, накал страстей угаснет, посетители заскучают в ожидании ответа оппонента, да и разбредутся в поисках более комфортабельных мест общения. Кроме того, чат должен быть устойчивым к наплыву посетителей – он должен держать как можно большее количество одновременных подключений без ощутимых последствий для производительности. Наконец, чат должен быть нетребовательным к ресурсам. Все эти, а также многие другие достоинства замечательным образом сочетаются в продукте отечественного производителя с непритязательным названием php-chat (php.spb.ru/chat). Не зря автор называет его “правильным чатом”.

Как ясно из названия, чат написан на php, то есть будет работать с любым браузером в любой комплектации, и пользователю не придется скачивать никаких дополнительных компонентов, как, например, в случае использования Java- или Flash-технологии. Выверенная архитектура, грамотный код и тщательная отладка делают чат очень быстрым, а сжатие передаваемых данных серьезно уменьшает трафик. Чат не использует SQL, что избавит вас от необходимости возиться с настройкой базы данных и позволит сэкономить на хостинге. Движок чата съедает всего около 5 Мб памяти на 100 пользователей и демонстрирует просто феноменальную устойчивость – без проблем работает даже при 1000 одновременных подключений.

Автор утверждает, что пределы работоспособности чата лежат в районе десятка тысяч активных пользователей, однако проверить это не представляется возможным. Соединение пользователя с сервером является постоянным, вследствие чего отсутствует столь раздражающий периодический refresh окна чата. Применение шаблонов позволяет легко изменить дизайн чата по вашему усмотрению или воспользоваться одним из множества готовых скинов. Об административной части вообще можно написать отдельную книгу.

При этом все очень хорошо продумано и удобно. Иерархическая система делегирования административных прав, настройка различных уровней безопасности, подробная статистика работы чат-сервера, встроенная система самодиагностики и устранения проблем, серьезные возможности защиты от флуда – вот лишь малая часть предоставляемых чатом средств, облегчающих работу администратора. Работает чат и под Windows, и под Unix/Linux, причем установка в Windows занимает несколько секунд – чат сам распакуется и настроит себя.

Это идеальное решение, если вы хотите установить чат на своей домашней машине для пользователей домашней сети. В Unix/Linux все ненамного сложнее – надо лишь прописать в конфигурационных файлах верные параметры, соответствующие вашему хостингу. Дистрибутив чата снабжен подробнейшей инструкцией, так что проблем возникнуть не должно.

ГОСТЕВАЯ КНИГА
Гостевая книга не так стремительна, как чат, она позволяет хорошо обдумать свою реплику, не опасаясь, что предмет спора будет погребен под десятками страниц посторонних высказываний. В отличие от форума гостевая книга, в силу своей линейности, не позволяет мысли растекаться, не дает возможности заблудиться в бесконечных ветвях общения. Но все же гостевая книга – это, прежде всего, инструмент обратной связи с посетителями, а не средство для выяснения личных отношений между пользователями.

В любом случае, будете ли вы использовать гостевую книгу по прямому назначению или разрешите пользователям делать все, что им заблагорассудится, вам пригодится phpBook (www.smartisoft.com) – очень простой и удобный движок для гостевухи. Настройка крайне проста – нужно только прописать несколько параметров в конфигурационном файле и создать в базе данных таблицу, которая будет автоматически заполнена данными, когда вы запустите установочный скрипт. Гостевая книга поддерживает список запрещенных к употреблению слов и позволяет банить IP-адреса неугодных посетителей. Кроме того, администратор может комментировать записи, оставленные пользователями, или вовсе удалять их. Среди языков интерфейса доступен и русский.

БЛОГ
Россия вслед за всем остальным миром переживает блоггерский бум (блог от английского weblog — веб-журнал, веб-дневник). Количество дневников россиян, зарегистрированных на LiveJournal.com (ЖЖ, самый популярный у нас блог-сервис), составляет около 200 тыс. Общее же количество пользователей ЖЖ давно перевалило за 7 миллионов. При этом LiveJournal далеко не самый известный в мире блог-сервис.

Завести себе онлайн-дневник не составит труда – просто зарегистрируйтесь на LiveJournal.com или его российском аналоге LiveInternet.ru и получите в свое распоряжение полный набор инструментов для ведения блога. Но если вы решили идти своим путем и считаете, что присоединяться к толпам тусующихся в ЖЖ бездельников ниже вашего достоинства, вам пригодится QuickBlogger (www.jlwebworks.net). Это инструмент, позволяющий вмонтировать персональный блог в ваш собственный сайт. Функции QuickBlogger стандартны для любого блога: публикация, редактирование и комментирование постов. Оформление лаконичное и строгое. SQL-сервер не требуется, а с установкой справится и ребенок.

ОПРОСЫ
Система опросов Advanced Poll (www.proxy2.de) поставляется в двух вариантах: первый для хранения результатов опросов использует SQL, второй – текстовые файлы. Выбирайте, что вам больше нравится. Установка и в том, и в другом случае займет не больше минуты. А если для хранения результатов вы выбрали текстовые файлы, вам даже не придется ничего настраивать – залейте дистрибутив в подходящую папочку на хостинге, и система будет готова к работе. Поддержка русского языка не может не радовать, а встроенный менеджер шаблонов оформления превратит подбор дизайна в сплошное удовольствие.

Добавление нового шаблона к уже существующим – дело двух кликов мышью. Создать новое голосование тоже проще простого. Придумайте вопрос, заполните варианты ответов (никаких ограничений на их количество не налагается), установите срок актуальности опроса, в течение которого он будет отображаться, и нажмите кнопку “Создать голосование” – система тут же сгенерирует код, который вам нужно будет вставить в соответствующем месте на вашей странице. Если у вас есть несколько опросов, можно поручить системе демонстрировать их в случайном порядке. А включив соответствующую опцию, можно дать пользователям возможность комментировать опрос.

По каждому опросу предоставляется подробная статистика, включающая данные о продолжительности голосования, общем количестве проголосовавших, среднем числе голосующих за день, количестве и процентном соотношении пользователей, выбравших тот или иной вариант ответа – в общем, все, что надо для социологического исследования.

ДОСКА ОБЪЯВЛЕНИЙ
PHP Message Board (www.cyber-cats.com/php) – отличная доска объявлений. Простая и вместе с тем обладающая всем необходимым для выполнения своих функций. Например, программа предлагает возможность поиска по заголовку или по содержанию, поэтому найти нужное объявление здесь несложно. Разделение сообщений на новые и старые позволит выявить наиболее актуальные объявления. Да и установка не потребует ни малейшего напряжения мысли.

ГАЛЕРЕЯ ИЗОБРАЖЕНИЙ
Возможно, это какой-то новый социальный инстинкт – показывать фотографии, причем как можно большему количеству людей (в идеале – всему населению Земли). Интернет является прекрасным средством для достижения этой высокой цели. Нужно только разместить на своем сайте галерею изображений, например Сoppermine Photo Gallery (coppermine.sourceforge.net), наполнить ее фотографиями и придумать картинкам завлекающие описания. Дальнейшая схема действий ничем не отличается от той, которая применяется, когда кто-то приходит к вам в гости. Спрашивайте всех своих знакомых в аське, не видели ли они еще ваших новых фотографий, и тут же, не дожидаясь ответа, одаривайте их ссылкой на свой онлайн-альбом.

Они буду счастливы. Проводите эту процедуру регулярно (по крайней мере, раз в день), и вскоре от вас будут шарахаться даже друзья детства. При всем чудовищном многообразии функций Сoppermine Photo Gallery устанавливается до смешного просто – нужно только указать инсталляционному скрипту параметры базы данных. Сразу после этого можете приступать к наполнению галереи изображениями. Вы также можете разрешить посетителям вашего сайта создавать собственные альбомы, что только повысит привлекательность вашего ресурса.

Кроме того, Сoppermine Photo Gallery замечательным образом интегрируется с форумом phpBB и может использовать общую с ним базу пользователей. Движок CPG позволяет создавать неограниченное количество галерей и альбомов, которые могут быть сгруппированы по категориям, организованным в иерархическую структуру. Пользователи распределяются по группам с возможностью тонкой настройки привилегий для каждой. Ведется статистика просмотров изображений, и среди них выявляются наиболее популярные. Посетители могут комментировать и оценивать каждую картинку. Пригодится и функция поиска по галереям. Поддержка русского языка уже не удивляет, как и огромное количество доступных скинов. В итоге мы получаем очень удобный, простой и надежный инструмент, с которым приятно работать.

евгений яворских avst@hot.ee

Поисковый движок
Поисковый скрипт RiSearch SQL от Сергея Тарасова (risearch.org/rus) написан на языке PERL и не требует внешней базы данных. Одно из главных преимуществ данного скрипта в том, что индексации будет подлежать весь контент сайта, причем размер созданных баз никоим образом не скажется на скорости работы скрипта. RiSearch позволяет управляться с сотнями мегабайт текстовой информации и не использует какие-либо библиотеки или базы данных, кроме самого PERL. Следовательно, его можно использовать на любом сервере, где имеется доступ к CGI.

Второе неоспоримое достоинство – индексация и поиск в среде кириллицы. Другая бесплатная модификация, RiSearch PHP, отказывается работать с великим и могучим на ряде серверов (впрочем, как и ряд других поисковых PHP-скриптов).

RiSearch лучше всего подходит для малых и средних сайтов – порядка 1000 файлов с объемом 10-20 Мб. Впрочем, автор уверяет, что скрипт осилит и гораздо большее число файлов (risearch.org/rus/sql).
Настройка скрипта довольно проста: нужно отредактировать первую строку во всех файлах (хотя во многих случаях это не требуется) и нескольких строк в файле config.pl. Для начала следует указать путь к интерпретатору PERL на вашем сервере: как правило, это #!/usr/bin/perl. Во всяком случае, владелец хостинга обязательно предоставляет такую информацию. Далее в файле config.pl отыщем секцию Database parameters и откорректируем данные для параметров доступа к базе данных MySQL: $DBSERVER, $DATABASE, $USERNAME и $PASSWORD.

Означенные параметры вам также должен предоставить хостер после процедуры регистрации и оплаты домена. Осталось исправить значение “http://www.server.com/” переменной “$base_url” на свой родной URL. Теперь можно приступать к загрузке файлов скрипта в каталог “cgi-bin” сервера (файл spider.pl можно выбросить).

Обязательным условием является загрузка файлов в режиме ASCII (опция Transfer Type вашего FTP-клиента), в противном случае при запуске скрипта сервер выдаст сообщение об ошибке. Как известно, в *NIX-подобных системах, используемых большинством веб-серверов, формат текстовых файлов отличается от принятого в MS-DOS. Разница состоит в символе конца строки. По этой причине перед загрузкой файлов скрипта на сервер необходимо преобразовать файл в *NIX-формат (это позволяют делать многие текстовые редакторы) или использовать ASCII-режим FTP-клиента, что, на наш взгляд, гораздо удобнее.

На сервере потребуется установить атрибуты файлов/директорий с правом на чтение и исполнение: “755” для скриптов и “777” для директории “log” (в CuteFTP это делается командой Properties/CHMOD контекстного меню). Процесс индексации выглядит так: в строке браузера набираем адрес вида www.ваш_сайт.ru/cgi-bin/index.pl, и после нескольких секунд работы индексирующего скрипта поисковый движок готов к работе. Код поисковой формы можно скопировать из шаблона template.htm в удобное место страницы, после чего отредактировать шаблон сообразно своим представлениям о дизайне.

Форма отправки сообщений
Достаточно прописать в явном виде почтовый адрес веб-мастера, чтобы через некоторое время на ваш почтовый ящик обрушилась лавина спама. Наверняка вы не раз встречали на сайтах форму отправки сообщений: в теле страницы имеется форма, где пользователь вводит свои данные и текст письма, после чего нажатием кнопки послание отправляется по нужному адресу. Такая форма удобна для тех, кто не имеет доступа к почтовому клиенту – например, для посетителей интернет-кафе.

Наиболее удобным нам кажется почтовый скрипт PHPFormMail-Classic (majordomo.ru/phpformmail_classic-1.06.0.tar.gz) компании NetHouse, учитывающий все нюансы кириллицы и снабженный подробной инструкцией на русском языке. Линуксовый формат архива понимают практически все популярные архиваторы. Все, что нам понадобится сделать, это изменить две переменные в коде скрипта.
В первой строке “$referers = array(‘Ваш_сайт.ru’, ‘Домен_Вашей_почты.ru’);”, содержащей список доменных имен, имеющих право использовать форму отправки почты, нам требуется изменить умолчальные значения на названия своего домена (кавычки не используются).

Например, таким образом:
$referers = array(‘www.pupkin.ru’,’pupkin.ru’);
Обратите внимание, что значения www.pupkin.ru и pupkin.ru – разные имена. Например, если письмо отправляется на адрес afftar@pupkin.ru, а веб-страница с формой расположена на сайте bobruisk.ru, нам придется изменить строку на
$referers = array(“bobruisk.ru “, “pupkin.ru”);

Следующая строка – “valid_env = array(“REMOTE_HOST”, “REMOTE_ADDR”, “REMOTE_USER”, “HTTP_USER_AGENT”);” – позволяет узнать об отправителе массу дополнительной информации: имя сервера, IP-адрес и тип браузера – если в код формы добавить соответствующую запись. На этом настройка скрипта закончена. На очереди создание формы отправки сообщения, для чего воспользуемся генератором кода формы для PHPFormMail (majordomo.ru/jsmailphp.html). Мы не станем описывать все параметры данного “конструктора”, поскольку создание кода чрезвычайно наглядно и просто. Отметим лишь безусловное преимущество такого метода: вы никогда не запутаетесь в многообразии строк и параметров кода формы.

Обратите внимание, что скрипт PHPFormMail и конструктор от NetHouse позволяют использовать в коде формы строчки для перехода на страницы с дополнительной информацией. Например, при корректном заполнении всех полей формы и нажатии кнопки отправки будет запущена веб-страница вида “Сообщение отправлено успешно”. А вот при отсутствии данных в одном или нескольких полях формы отправителю будет предложено вернуться на страницу отправки.

Напомним, что страница отправки сообщений выглядит более элегантно, если открывается в отдельном окне посредством Java-скрипта с функцией “openBrowserWindow”. Если вы решите использовать дополнительную страницу с информацией об ошибке заполнения формы, не поленитесь и сделайте ссылку для перехода на страницу отправки.