Амурный guest book html. Веб-дизайн и поисковая оптимизация. Рис.1. Один из вариантов гостевой книги

Создание гостевой книги на сайте

В предыдущих статьях было рассмотрено создание формы обратной связи на сайте. Другой вариант двустороннего общения с посетителями - гостевая книга , в которой посетители оставляют сообщения непосредственно на странице сайта. Администратор сайта может отвечать на них, редактировать, удалять и т.п. Гостевая книга при своих несомненных преимуществах перед формой обратной связи имеет один большой недостаток - она добавляет забот администратору. Теперь все сообщения посетителей видны на сайте и на них надо иногда отвечать. Кроме того, наши гости пишут не только благодарственные отзывы, но и всякие непотребства, причем занимаются этим с особым усердием. Убил бы этих "писателей"! Следовательно, за гостевой книгой надо постоянно следить и заниматься воспитанием хулиганов-бездельников. Пример гостевой книги показан на рис.1:



Рис.1. Один из вариантов гостевой книги

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

Гостевые книги могут строиться с использованием баз данных или без них. В последнем случае информация сохраняется в обычном файле. Если вы сторонник простых решений, то рекомендую второй вариант, то есть обойтись без создания базы данных. Мне понравилась гостевая книга, разработанная Сергеем Шестопаловым (см. его сайт "Домашние скрипты"). На сайте также предлагаются интересные авторские разработки для интерактивного общения с посетителями: форумы, гостевые книги, различные формы для комментариев, отправки сообщений, сбора статистики и много других полезностей. Обязательно загляните, рекомендую!

Для примера, рассмотрим установку Гостевой книги версии 2.0. Она обеспечивает следующие функции:

  • управление сообщениями: удаление, редактирование, комментирование,
  • настройка и вся работа производится через панель управления, то есть вам не потребуется знание программирования и других премудростей,
  • в сообщениях поддерживаются смайлики, форматирование текста и цветов,
  • предварительный просмотр сообщения,
  • есть система Антиспам, Антихакер, блокировка пользователей по ip, поиск злоумышленника по ip,
  • защита от рекламы и безопасность организованы с помощью капчи (ввод искаженных цифр). Также вы можете составить "черный список" нежелательных посетителей и перечень запрещенных к употреблению слов,
  • полностью настраиваемый интерфейс и многое другое.

Гостевая книга 2.0 при своей простоте вполне достаточна для большинства применений. Бесплатно скачать её можно с соответствующей страницы сайта Сергея Шестопалова. Размер папки с файлами после распаковки (имя - Book ) около 400 Кб.

Начинаем установку гостевой книги на ваш сайт:

1. Сначала необходимо проверить, что тарифный план вашего хостинга (контора, где размещён ваш сайт) поддерживает PHP. Если нет, то вам придётся скорее всего доплатить для перехода на другой тариф, поддерживающий РНР.

2. Закачиваем папку Book на свой сайт, обычно в корневой каталог, через панель управления или по FTP .

3. Ставим на нужной странице сайта гиперссылку на гостевую книгу - http://www.ваш_сайт /book/index.php.

4. Желательно также проверить права доступа к файлам и папкам вашего сайта. Удобнее всего это сделать через панель управления. Около каждой папки и файла стоят значки типа rwx, r-x или цифры 755, 644 и т.п. Они как раз и обозначают права доступа для администратора и гостей сайта:
r (или 4) - право на чтение данных из файла,
w (или 2) - право на изменение содержимого файла,
x (или 1) - право на исполнение файла.

Цифровое кодирование используется для сокращения записи. Например, 7 эквивалентна записи rwx (4+2+1) и т.д. Не вдаваясь в подробности этих сокращений, так как они обычно расшифрованы в руководстве к панели управления сайтом, проверьте, что для папок у вас стоит 755 (что соответствует rwx, r-x, r-x), а для файлов 644 (rw-, r--, r--). Обычно эти значения установлены по умолчанию и ничего менять вам не придется, но лучше все же проверить. Как говорится, "сосед мне друг, но сало лучше перепрятать".

Вот и всё! Заходите на свой сайт, открываете страницу, на которой вы поместили ссылку на гостевую книгу, переходите по этой ссылке и оставляете первое сообщение себе любимому.

Теперь несколько слов про обслуживание гостевой книги. Сеанс работы администратора с гостевой книгой начинается с авторизации - входа в панель управления по адресу http://www.ваш_сайт /book/admin/index.php. Логин и пароль для первого входа admin 111.

Далее вы сможете заменить пароль (это сделать желательно) и начать редактирование записей и отвечать на них. Интерфейс панели администратора чрезвычайно дружелюбный и вы без труда разберетесь со всеми функциями. Все инструменты понятны и дополнительно снабжены подсказками. Для примера, на рис.2 показана панель настройки внешнего вида главной страницы гостевой книги и раскрыт список доступных панелей:



Рис.2.

Конечно, совершенно аналогично описанному, вы можете установить и более полную версию Гостевой книги 3.2 Сергея Шестопалова, имеющую некоторые дополнительные функции: модуль статистики, возможность проверки сообщений администратором перед публикацией на сайте (модерация) и некоторые другие.

Как я уже говорил, на страницах гостевой книги любят оставлять свои сообщения разные нежелательные "друзья". Обычно они размещают здесь ссылки на свои сайты, прикрываясь восторженными отзывами о вашем сайте. В 99% случаев - это спам. Поэтому рекомендую исключить ввод адреса сайта в сообщениях. Для этого войдите в панель управления гостевой книгой и на закладке Внешний Вид - Форма снимите галку у пункта "Сайт", чтобы спамеры не использовали гостевую книгу для размещения ссылок на свои сайты. Электронную почту и ICQ лучше оставить, так как иногда люди хотят получить конфиденциальный ответ, то есть без размещения в гостевой книге. По окончании не забудьте нажать кнопку "Сохранить" внизу страницы.

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

A guest book can be a great way for your website visitors to make a permanent impression on their presence on your website without being too intrusive. Before you start thinking about the HTML source for a guestbook, you need to decide how you want it to flow and how you want it look. In this case we will look at a guestbook that places a form for users to sign at the top. Below that there will then be a list of all the comments posted by the readers.

The HTML Source Code

The HTML source for our guestbook will consist of a web form and a list of DIV containers which will hold the display for the signed comments. The Part of the code that will handle the form is a simple as this.

Please Sign Our Guestbook

Right below the form, we will place the comments for other users that have already signed the guestbook and that HTML that handles this looks somewhat like this.

Love your website, I will come back often!!

It was a great experience spending time here, Would love to contribute more!!

Wilbur Right

Great to be a part of what you are doing here!!

Adam Adeve

Wish you all the best and success in your project!

Tony Scott

Keep up the good work!!

The effects of placing these two pieces of HTML code on your Guestbook webpage would be as illustrated in the image shown above on the left.

Making It All Work

As is the custom with HTML, it is not too functional on its own as HTML was designed primarily as a way to handle displays of text and images. To solve this problem, we need to implement some server-side code to process the data collected by the guestbook form. This server-side code could be in any one of a number of programming languages such as PHP, ASP .NET, JSP, or Ruby. Since programming in these languages is beyond the scope of this article, I’m going to use generic, "pseudo" code to represent the server side code and give you an idea of how it might look.

connect to database

if(form submitted){

insert data into database()

read all guestbook entries from database and order by date descending

while(database entries exist){

// display entires in this format

print: "

$fullname$
$date$

$message$

."

close connection to database

The pseudo code above simply makes a connection to the database where the data is stored. It then checks to see if the guestbook form has been submitted. If it has, it then enters the data into the database.

The next thing the pseudo code does is read all the guestbook entries from the database and display them to the user right under the web form giving the result as seen in the image above.

Conclusion

There you have it. The HTML source for a guestbook does not get any simpler than that. Guestbooks are one of the easiest and most basic dynamic pages you will ever implement on your website. Of course the guestbook can be styled further and more complex modes of operation and data validation can and should be used to suite the flow of your website. Whichever way you choose to implement the guestbook, the basics as described in the pseudo code remain the same.

» мы рассмотрели основные возможности и особенности компонента книги отзывов и приступили к обзору его настроек. В этой статье мы закончим рассмотрение опций расширения и поговорим о защите от спама.

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

Просмотр

Настройки на данной вкладке (рисунок ниже) относятся к записям (сообщениям) гостевой книги, которые оставили пользователи, и ответам на эти записи (комментарии), которые оставил администратор сайта.

Цифры в списке ниже соответствуют цифрам на рисунке выше. Включая\отключая соответствующие опции, Вы показываете\скрываете те или иные элементы записей и комментариев.

  1. Отображать Имя в сообщении.
  2. Отображать Email в сообщении.
  3. Отображать Website в сообщении.
  4. Отображать Имя в ответах.
  5. Отображать Тему в комментарии.
  6. Отображать Email в ответах.
  7. Отображать Website в ответах.
  8. Отображать дату в ответах.
  9. Выпадающий список.

Рассмотрим оставшиеся опции.

  • Отображать Сообщения. Если данная опция отключена (выбрано Нет ), то в книге отзывов Joomla не будут отображаться никакие записи, а только форма. По сути, книга станет просто формой обратной связи.
  • Показать комментарии. Вы можете полностью скрыть комментарии к записям. Они обведены голубой рамкой на рисунке выше.
  • Разбивка на страницы. Активирует разделение записей книги на страницы, если их много.
  • Нумерация страниц по умолчанию. Указывает на то, сколько записей должно отображаться на одной странице.
  • Постраничное разбиение (Сообщения). Можно задать значения, которые будут появляться в выпадающем списке (на рисунке выше №9). По сути, это настройка пагинации (постраничной навигации).
  • Включить Cache. Если Вы активировали использование кэша в общих настройках Joomla, включив эту опцию, добавите в кэш сайта страницы с записями книги отзывов. Это может снизить нагрузку на сервер и увеличить скорость загрузки страниц у пользователей. Рекомендую использовать данную опцию. Стоит отметить, что кэширование может привести к тому, что записи в гостевой книге будут появляться не сразу после их публикации (зависит от кэша).

Безопасность

Это одна из первых пяти вкладок (рисунок ниже) настроек Phoca Guestbook, посвящённая безопасности (защиты от спама). Она, в основном, направлена на выявление запрещённого содержимого в отзывах гостевой книги Joomla средствами самого компонента и по Вашим правилам.

Опции, которые оснащены всплывающими подсказками на русском языке, рассматриваться не будут.

Для некоторых опций доступны такие параметры:

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

Обратите внимание, что возможно «наложение» срабатывания тех или иных опций безопасней в рамках всех настроек компонента. Например, статус публикации может зависеть от опции Премодерация на вкладке Основные .

Опция Включить очистку HTML позволяет автоматически удалять из записей книги отзывов для Joomla 3 все запрещённые\небезопасные HTML-теги.

Проверка содержания

Опции данной вкладки позволяют настроить интеграцию Phoca Guestbook Joomla и антиспам-сервисов Akismet, Mollom . Сервисы анализируют сообщения, которые оставляют пользователи в книге отзывов. Если эти сообщения похожи на спам, будет предпринято одно из действий, которое Вы зададите в опции Блокировать СПАМ (Проверка содержания) . Действия аналогичны одноимённым параметрам, описанным выше в подразделе Безопасность . Если выбрано Нет (Запрещено) , то проверка на спам при помощи этих сервисов производиться не будет.


Можно отключить один из сервисов. Вам нужно зарегистрироваться на сайтах антиспам-сервисов и получить соответствующие ключи, которые нужно ввести в соответствующие поля на этой вкладке (рисунок выше).

Также стоит отметить, что на 20.09.2015 для бесплатных аккаунтов сервисов есть лимиты:

  • Akismet – до 50000 проверок в месяц. Примерно, по 1666 проверок в сутки.
  • Mollom – до 50 проверок в сутки. Примерно, 1500 проверок в месяц.

На своём сайте я уже более 2-х лет использую Akismet для защиты комментариев . Пока не наблюдал особых проблем.

Учитывайте, что применение этих сервисов может замедлить процесс отправки записи в книгу отзывов, так как сперва сообщение направляется на сервера этих анти-спам сервисов, там оно обрабатывается, и назад отправляется результат проверки. Если соединение между Вашим сайтом и сервисом перегружено, или сам сервис перегружен, то может быть задержка во времени с момента нажатия пользователем на кнопку «Отправить» и до какой-то реакции Вашего сайта.

Проверка IP Адреса

На данной вкладке (рисунок ниже) можете настроить интеграцию книги отзывов с анти-спам сервисами, которые определяют спам на основании анализа IP-адреса, с которого добавляется запись на Ваш сайт. Доступно три сервиса, в которых Вам нужно зарегистрироваться и получить соответствующие ключи. Можно не регистрировать (и не использовать) все три сервиса. Можете поэкспериментировать и определить наиболее эффективный для Вас.

  1. Honeypot.

Можно задать различные действия в случаях, когда анти-спам сервисы что-то обнаружат (опция Запрещённые IP ). Действия аналогичны одноимённым параметрам, описанным выше в статье.

Также есть возможность задать список запрещённых IP-адресов вручную – опция Блокировка IP .

В Phoca Guestbook на вкладке (рисунок ниже) есть множество опций для добавления капчи к форме отправки записей в книгу отзывов. На основании собственного опыта, могу сказать, что капча – это очень неудобный элемент для посетителей Вашего сайта. Рекомендую использовать её только при острой необходимости. Когда ничего больше не помогает или нет средств на реализацию более удобной для посетителей защиты Вашего сайта от спама.

У себя на сайте в комментариях, форме подписки на рассылку и личных сообщениях я не использую капч. Применяю это только при регистрации и на странице обратной связи. Для регистрации планирую отказаться от капчи в ближайшем будущем, если смогу найти подходящую альтернативу. А вот в контактах оставлю, так как предпочитаю вести переписку с посетителями или в комментариях, или в личных сообщениях. На это есть ряд причин (письма с формы приходят мне на почту):

  • На почтовые ящики приходит множество сообщений. Не всегда удобно искать те или иные цепочки писем.
  • Вероятность попадания сообщения в папку «Спам». Были случаи, когда пользователи не находили письма по данной причине.
  • На личные сообщения и комментарии к статьям я реагирую гораздо быстрее по техническо-организационным причинам.
  • Были случаи, когда пользователи удаляли цепочки писем с нужной им информацией.

Вы можете добавить одну или несколько из следующих капчей: reCAPTCHA, EasyCalc, Math Captcha, TTF Captcha, Mollom Captcha, hnCaptcha, капча Joomla по умолчанию. Для некоторых из них есть настройки (рисунок выше). Отмечу, что добавление нескольких капчей – крайняя мера. Особенно для сайтов с низкой посещаемостью и активностью пользователей.

Для использования, например, reCAPTCHA нужны ключи. Их бесплатно можно получить на сайте капчи .

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

  1. Включите ведение логов добавления записей (ведение журнала). Это можно сделать в Phoca Guestbook – Настройки – Logging , активируйте обе опции (Включить Logging, Сохранение лога журнала ). Если появятся проблемы с базой данных, то отключите Сохранение лога журнала . Если не поможет, то отключите и Включить Logging .
  2. Включите предварительную модерацию. Это можно сделать в опция Премодерация .
  3. Включите уведомления администраторов на почту о новых записях. Это можно сделать в Phoca Guestbook – Настройки – Основные опция Отправить Email .
  4. Включите проверку пользователя. Это можно сделать в Phoca Guestbook – Настройки – Основные опция Отключить проверку пользователя .
  5. Проверка содержания .
  6. Настройте интеграцию с одним или несколькими анти-спам сервисами в настройках компонента на вкладке Проверка IP -адреса .
  7. Укажите уникальный суффикс сессии. Это можно сделать в опция Суффикс сессии .
  8. Включите очистку HTML. Это можно сделать в Phoca Guestbook – Настройки – Безопасность опция Включить очистку HTML .
  9. Включите скрытое поле. Это можно сделать в опция Отобразить скрытые поля .
  10. Постоянно анализируйте журнал событий и вносите соответствующие коррективы в защиту сайта.
  11. Постоянно отслеживайте все письма о новых записях, модерируйте их, а на основании модерации вносите соответствующие коррективы в защиту сайта, например, добавляйте в фильтр IP-адреса, слова и так далее.
  12. Задайте список запрещённых слов. Это можно сделать в Phoca Guestbook – Настройки – Безопасность опции Запрещённые слова, Запрет целые слова . Учитывая особенности языка (падежи, склонения, разнообразие нецензурной лексики и т.д.), а также несовершенство данного фильтра (поиск чётких совпадений), на мой взгляд, это не такие уж эффективные опции.
  13. Задайте ограничения на максимальное количество символов сообщения. По умолчанию – 2000. Это можно сделать в Phoca Guestbook – Настройки – Безопасность опция Количество символов .
  14. Ограничьте количество ссылок, отображаемых в сообщении. Это можно сделать в Phoca Guestbook – Настройки – Безопасность опция Maximum Url . Установите «-1» (без кавычек), если не хотите показывать ссылки вообще.
  15. Задайте список слов, идентифицирующих ссылки в записях книги отзывов для Joomla 3. Это можно сделать в Phoca Guestbook – Настройки – Безопасность опция Слова-индификаторы для запрета ссылок .

Обратите внимание, что добавление большого количества значений в такие поля как: Запрещённые слова, Запрет целые слова, Слова-индификаторы для запрета ссылок и так далее, могут увеличить размер таблицы Phoca Guestbook базы данных, замедлить её работу в целом и замедлить процесс отправки записи в книгу. Например, я пробовал добавлять список из нескольких тысяч слов (ненормативная лексика) и добавление комментария длилось очень долго. Это было не с Phoca Guestbook, но, думаю, что и для этого компонента данная проблема тоже может проявиться.

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

  1. Разрешите добавление записей в книгу отзывов только зарегистрированным пользователям. По умолчанию, Phoca Guestbook настроен именно так. Лучше, чтобы при регистрации был капч.
  2. Отключите редактор Javascript. Это можно сделать в Phoca Guestbook – Настройки – Форма опция Включить редактор Javascript .
  3. Добавьте капч (или несколько) к самой форме добавления записи в книгу отзывов. Это можно сделать в Phoca Guestbook – Настройки – Captcha опция Включить Captcha . Включите капч для всех пользователей.
  4. Включите отсчёт времени и блокировку. Это можно сделать в Phoca Guestbook – Настройки – Captcha опции Включить отсчёт времени и Время блокировки .

Обратите внимание, что можно использовать любое сочетание вышеописанных способов.

Также настоятельно рекомендую позаботиться об общей защите Вашего сайта. Если Вам интересна данная тематика, то ознакомьтесь с циклом статей о защите сайта Джумла. Вот первая (из 12) часть. Также подумайте над чем-то наподобие RSFirewall .

Для отображения на сайте (во фронтальной части) отзывов и формы их добавления служит пункт меню Гостевая книга (рисунок ниже). Его можно создать в менеджере меню Joomla, как и любой другой пункт меню.


Все «уникальные» для этого компонента опции, доступные при настройке пункта меню, разделены на пять вкладок. Большинство опций аналогичны тем, что были рассмотрены в этой и предыдущей статье для самого компонента. Рассмотрим самые интересные, на мой взгляд, параметры. Также не будем затрагивать настройки, одинаковые для всех типов пунктов меню Джумла.

  1. Пункт меню.
  2. Параметры. Эти опции были рассмотрены в предыдущей статье .
  3. Форма.
  4. Просмотр. Эти опции были рассмотрены в этой статье выше.

На вкладке Пункт меню (рисунок выше) в спадающем списке Выбор гостевой книги можно указать книгу, которую нужно отображать по нажатию на этот пункт меню. Создание книг рассмотрено в предыдущей статье «Обзор Phoca Guestbook. Гостевая книга Joomla ».

На вкладке (рисунок ниже) есть опции, позволяющие менять цветовое оформление книги. Если это отключено, то будут использоваться параметры таблицы стилей шаблона Вашего сайта.

Подробнее о различных шаблонах Джумла и работе с ними можете прочесть в этом разделе .


Обратите внимание, что глобальные (общие) настройки Phoca Guestbook Joomla менее приоритетны в случаях, когда для конкретного пункта меню заданы свои собственные (если они отличаются).

Как видите, компонент весьма функционален и гибок в плане настроек. Думаю, что в сочетании с широким выбором опций по защите от спама этот бесплатный компонент книги отзывов для Joomla 3 будет полезен всем, кто ищет подобное расширение.

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

Итак, прежде всего нам необходимо разобраться с файлами. Их у нас будет четыре, хотя можно объединить и в один, но это уже вам решать…

Файл №1 — guestbook.inc.dat

Создадим его, оставим пустым, и укажем ему права (0777-*nix, rwx/rwx/rwx)

Сюда будут записываться все сообщения… Да-да!!! Именно в один файл! Но не пугайтесь. Мной лично проверялось на всеми известном сервере WallSt. база данных размером в 5, 10, 100, 250, 500, 1000 Кб! Торможения были только на 1000 Кб книге, поверьте, это более 3000 средних записей! Вам хватит ее с лихвой.

Файл №2 – config.inc

Файл №3 – gb.php

Guestbook *Имя:
E-mail:
*Сообщение:

$c-1)break; list($name,$email,$date,$time,$guesttext)=split(":::","$data[$i]", 5); /* я нарочно не стал делать супер_мега_навороченных дизайнов, я лишь ограничусь простым выводом текста! Кому надо, тот легко поймет, что нужно делать! Кто не поймет, мыло будет ниже, посему читайте дальше… */ echo "$name @ [$date, $time]
$guesttext


"; } $col=$c/$gb_on_page; echo "
"; if ($c<$gb_on_page){ echo ""; } else { echo "Страницы: "; /* Здесь такая штука, что если можно перейти на предыдущую страницу, то показывается примерно что то вроде этого:) << 2 */ if($c>$gb_on_page & $page>0){ echo "<<"; } /* Ниже функция, которая отвечает за вывод нумерации страниц с сообщениями… */ for($i=0;$i<$col;$i++) { if(($i)!=$page)echo "[".($i+1)."] "; else echo "".($i+1).""." "; } } /* Здесь такая штука, что если можно перейти на следующую страницу, то показывается примерно что то вроде этого:) 1 >>*/ if($c>$gb_on_page & $page<$col-1){ echo ">>"; } echo "
Всего сообщений: $c"; echo "
"; ?>

Файл №4 — gbadd.php

", ">", $guesttext); $name = ereg_replace("<", "<", $name); $name = ereg_replace(">", ">", $name); $email = ereg_replace("<", "<", $email); $email = ereg_replace(">", ">", $email); // нет кавычкам! 2=DeaD= thanX! $name = ereg_replace(""", """, $name); $email = ereg_replace(""", """, $email); $guesttext = ereg_replace(""", """, $guesttext); // удаление лишних пробелов // в центре $guesttext=ereg_replace(" +"," ",$guesttext); $name=ereg_replace(" +"," ",$name); $email=ereg_replace(" +"," ",$email); //cправа и слева $name=trim($name); $email=trim($email); $guesttext=trim($guesttext); // перевод строки $guesttext = ereg_replace("n", "
", $guesttext); // чтобы весь текст был на одной строке! $guesttext = ereg_replace("r", "", $guesttext); // мегакавычки $name = stripslashes($name); $email = stripslashes($email); $guesttext= stripslashes($guesttext); // правильные тире $guesttext = preg_replace ("/{1,}-{1,}/", " - ", $guesttext); $guesttext = preg_replace ("/^- /", "- ", $guesttext); // число-число $guesttext = preg_replace ("/(d)-(d)/", "\1–\2", $guesttext); // слова с дефисом $guesttext = preg_replace ("/(S+)-(S+)/", "\1-\2", $guesttext); // частицы и предлоги $guesttext = preg_replace ("/([А-Яа-яA-Za-z]) (ли|ль|же|ж|бы|б)([^А-Яа-яA-Za-z])/", "\1 \2\3", $guesttext); $guesttext = preg_replace ("/(s)([А-Яа-я]{1})s/", "\1\2 ", $guesttext); // A.C. Пушкин $guesttext = preg_replace ("/([А-ЯA-Z])([. ]{1}){0,1}([А-ЯA-Z])([. ]{1}){0,1}([А-ЯA-Z][А-Яа-яA-Za-z]*)/", "\1. \3. \5", $guesttext); // Пушкин А. С. $guesttext = preg_replace ("/([А-ЯA-Z][А-Яа-яA-Za-z]*) ([А-ЯA-Z])[. ]{1}{0,1}([А-ЯA-Z]).([,)]{1})/", "\1 \2. \3.\4", $guesttext); // преобразовываем адреса в ссылки! $guesttext = eregi_replace("([_a-z0-9-]+(.[_a-z0-9-]+)*@+(.+)*(.{2,3}))", "\0", $guesttext); $guesttext = eregi_replace("((ht|f)tp://www.|www.)(+(.+)*(.{2,3})((/|?)*)*)", "http://www.\3", $guesttext); $guesttext = eregi_replace("((ht|f)tp://)(((+(.+)*(.{2,3}))|(({1,3}.){3}({1,3})))((/|?)*)*)", "\0", $guesttext); // делаем "обрезание" слишком большого куска информации $name=substr($name,0,$name_max_size); $email=substr($email,0,$email_max_size); $guesttext=substr($guesttext,0,$message_max_size); // BBcodes $guesttext = ereg_replace("[b]", "", $guesttext); $guesttext = ereg_replace("", "", $guesttext); $guesttext = ereg_replace("[i]", "", $guesttext); $guesttext = ereg_replace("", "", $guesttext); $guesttext = ereg_replace("[u]", "", $guesttext); $guesttext = ereg_replace("", "", $guesttext); $guesttext = ereg_replace("", "", $guesttext); $guesttext = ereg_replace("", "", $guesttext); $guesttext = ereg_replace("", "", $guesttext); $guesttext = ereg_replace("", "", $guesttext); $guesttext = ereg_replace("", "", $guesttext); $guesttext = ereg_replace("", "", $guesttext); $guesttext = ereg_replace("", "", $guesttext); $guesttext = ereg_replace("", "", $guesttext); // отправка сообщения на мой электронный адрес // сообщение $message .="".$date.", ".$time." n"; $message .="Имя: ".$name.", e-mail: ".$email."nСообщениеn"; $message .="".$guesttext."n "; $message .="----------rn"; $message .="Сообщение из гостевой книги"; // заголовки $headers .="From: $site_name <$recipient>n"; $headers .="X-Mailer: Pseon’s Guestbookn"; $headers .="X-Priority: 1n"; $headers .="Content-Type: text/plain; charset=windows-1251n"; // отправляем все нафиг! mail($recipient, $subject, $message, $headers); $msg="$name:::$email:::$date:::$time:::$guesttext "; $lines = file("guestbook.inc.dat"); $fp = fopen("guestbook.inc.dat", "w"); fwrite($fp, "$msgn"); for ($i = 0; $i < count($lines); $i++) { @fwrite($fp, "$lines[$i]"); } fclose($fp); clearstatcache(); } // если не удалось, отсылаем его обратно! else { header("Location: gb.php"); } ?>

Ну а теперь банановый 🙂 На закуску хочу предложить вам набор BB-codes, которые помогут вашим посетителям несколько разнообразить сообщения в гостевых книгах 🙂

Full Name:
Email Address
Message: