Бдительный guest book html. Скрипт гостевой книги на PHP

На тему создания гостевых книг было написано большое количество статей, однако большинство из них раскрывали процесс написания не полностью, а частично. К тому же, написанные книги были максимально просты, и не могли ничего, кроме как добавлять сообщения. В данной статье я постараюсь подробно описать процесс создания гостевой книги с неплохим набором функций. Гостевая книга написана на 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, которые помогут вашим посетителям несколько разнообразить сообщения в гостевых книгах 🙂

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.

PHP 5.2 и выше;
- mod_rewrite;
- База данных MySQL 4.1 и выше.

Возможности

Встраивается под любой сайт(для этого нужно всего лишь отредактировать файлы top.php и bottom.php);
- антифлуд;
- бан лист;
- постраничная навигация вида << < ...| 5 | 6 | 7 ... > >>;
- поддержка BBCode;
- отображение смайликов;
- уведомление о новых добавленных сообщений;
- возможность добавления сообщений на модерацию;
- панель администратора;
- простота в установке и настойке.

Установка

Распакуйте архив и скопируйте содержимое архива в любую папку на Вашем веб сервере (к примеру "guestbook"). Откройте файл config/config_db.php в текстовом редакторе и укажите настройки подключения (хост базы данных или IP, имя базы данных, логин и пароль). Разместите таблицы базы данных MySQL SQL-запроса из файла guestbook.sql. обычно на большинствах хостингах это делается посредством web-интерфейса через phpMyAdmin. Зайдите в панель администрирования (http://ваш_сайт/папка_с_скриптом/admin/) и введите пароль 1111. Далее укажите необходимые настройки.

Коммерческая версия

По желанию заказчика я могу адаптировать скрипт под конкретные условия. Могут быть добавлены различные дополнительные функции.

Примечание

СКРИПТ "PHP Guestbook", ДАЛЕЕ ПРОСТО ПРОГРАММА ЯВЛЯЕТСЯ ПОЛНОСТЬЮ БЕСПЛАТНАЯ. ВЫ МОЖЕТЕ СВОБОДНО РАСПРОСТРАНЯТЬ, КОПИРОВАТЬ, ВНОСИТЬ СВОИ ИЗМЕНЕНИЯ В ИСХОДНОМ КОДЕ ПРОГРАММЫ, ЛИШЬ ПРИ УСЛОВИИ СОХРАНЕНИЯ КОПИРАЙТА АВТОРА. ИСПОЛЬЗОВАНИЕ ПРОГРАММЫ "PHP Guestbook" В КОММЕРЧЕСКИХ ЦЕЛЯХ ЗАПРЕЩЕНО. ВЫ ИСПОЛЬЗУЕТЕ ЭТУ ПРОГРАММУ НА СВОЙ СОБСТВЕННЫЙ СТРАХ И РИСК. АВТОР НЕ НЕСЕТ НИКАКОЙ ОТВЕТСТВЕННОСТИ ЗА РАБОТОСПОСОБНОСТЬ ПРОГРАММЫ, А ТАКЖЕ ЗА ПОТЕРИ, ПОВРЕЖДЕНИЯ ДАННЫХ ИЛИ ЧЕГО ЛИБО ДРУГОГО, СВЯЗАННЫЕ С ИСПОЛЬЗОВАНИЕМ И РАБОТОЙ ЭТОЙ ПРОГРАММЫ.

Если Вам понравился мой скрипт и у Вас есть желание отблагодарить меня рублем, то вот мои реквизиты:

WebMoney
U237811811298
R198597198920
Z917380288657

Яндекс деньги
41001635943434

PayPal

Если у Вас возникнут вопросы или есть предложения, пожалуйста, пишите мне на адрес: Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.

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

Очень часто люди просят скрипт гостевой книги на html, либо на javascript . Увы, такого никогда нет и не будет, так как для работы гостевой книги необходимо хотя бы записывать сообщения в файл. А это сделать ни в JavaScript , ни, тем более, в HTML невозможно.

Теперь копируйте папку guest в корень своего сайта. Далее располагайте на странице своего сайта ссылку на гостевую книгу (http://ваш_сайт/guest ).

Следующим шагом будет настройка гостевой книги. Для этого зайдите по адресу http://ваш_сайт/guest/admin.php . Введите пароль "admin " и после успешной авторизации зайдите во вкладку "Конфигурирование ". Краткое описание всех настроек:

  • Имя скрипта - поставьте свой название для гостевой книги Вашего сайта.
  • Текст приветствия - напишите любой текст, которые Вы хотите, чтобы видели Ваши посетители при посещении гостевой книги.
  • Рекламный блок - если Вы хотите разместить рекламу в гостевой книги, то скопируйте в это поле её код. Если её нет, то оставьте это поле пустым.
  • Ссылка на главную сайта - поставьте ссылку на главную страницу своего сайта.
  • Емайл админа / отсылать сообщения - укажите свой e-mail , а также выберите: хотите Вы получать сообщения на свою почту или нет.
  • Пароль админа - обязательно поставьте свой пароль. Не оставляйте "admin ".
  • Включить МОДЕРИРОВАНИЕ сообщений? - если Вы хотите проверять каждое сообщение перед публикацией, то включите данную опцию.
  • Задействовать функцию АНТИСПАМ? - здесь можно отключить систему защиты от спама, либо выбрать один из трёх вариантов: обычная капча, загадка или матоперация. Если Вы выберите обычную цифровую капчу, то укажите также длину капчи в текстовом поле справа.
  • Задействовать функцию АНТИФЛУД? - данная опция позволяет отфильтровать сообщения не по теме.
  • Делать ссылки в тексте активными? - если поставите "Да ", то тогда ссылки в тексте собщений будут активными. Это удобно для пользователей, но Ваша гостевая книга будет хорошим местом для спамера.
  • Включить / отключить графические смайлы? - если поставите "Да ", то пользователь сможет использовать смайлики.
  • Макс. длина имени - допустимое количество символов в имени пользователя.
  • Макс. длина сообщения - допустимое количество символов в сообщении.
  • Сообщений на страницу - количество выводимых сообщений на одной странице.
  • Следование сообщений - сортировка по возрастанию или убыванию даты написания сообщения.
  • Скин - внешний вид.

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

» DRBGuestbook

Гостевая книга DRBGuestbook – это бесплатный, простой PHP скрипт, который не требует БД MySql. Не смотря на это, вы можете управлять программой, удалять сообщения, одобрять сообщения, банить пользователей по IP адресу, через защищенную паролем панель администратора. Скрипт так же включает себя анти-спам проверку, такую как image verification, блокировку URL и модерирование всех сообщение в книге. Можно установить функцию, что каждый раз, когда кто-то оставляет сообщение, вы будете получать уведомление на e-mail.

Преимущества скрипта.

  • Быстрая и лёгкая установка.
  • Не требует БД MySQL. Все сообщения хранятся в файле.
  • Можно удалить множество сообщений за один раз.
  • Содержит анти-спам проверку.
  • Можно забанить IP адрес, чтобы не смогли оставлять сообщения.
  • Поддерживает модерацию сообщений, так, что только одобренные сообщения будут публиковаться.
  • Получайте уведомление на почту, каждый раз, когда кто-то подписал вашу гостевую книгу.
  • Проверка сообщение: список «запрещенных» (матерных) слов к публикации.
  • Функция анти-флуд. Чтобы пользователи не публиковали сообщения так часто.
  • Скрипт предотвращает публикацию HTML кодов или ссылок (URL) в теле сообщения, в качестве анти-спам предосторожности.
  • Настройка минимум и максимум букв в одном сообщении.
  • Скрипт можно легко настроить: сообщения об ошибке, предупреждения, дата и время.
  • Дата и часовой пояс легко настраивается.
  • Генерируемые страницы содержат синтаксис XHTML и прекрасно работают в браузерах IE и Firefox.
  • Вход в панель администратора через веб – интерфейс.

Системные требования

  • PHP версия 4.4 или выше
  • GD library
  • Apache HTTP Server с файлом.htaccess с функцией Override Allowed (рекомендовано)
  • Linux, Windows, Unix, Mac OSX, Sun Solaris, IIS


Full Name:
Email Address
Message: