Чувствительный guest book html. Создание гостевой книги

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

Что такое гостевая книга и зачем она вообще нужна на сайте?

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

Гостевая книга добавляет интерактивность на Ваш сайт и является распространенным способом обратной связи.

Итак, для начала создадим табличку в базе данных mysql , где будут храниться все комментарии пользователей:

CREATE TABLE IF NOT EXISTS `guestbook` (`id` int(11) NOT NULL auto_increment, `user_ip` int(10) unsigned NOT NULL, `user_email` varchar(50) NOT NULL, `addtime` int(11) NOT NULL, `name` varchar(15) NOT NULL, `text` text NOT NULL, `admin_text` text NOT NULL, `image` varchar(40) NOT NULL, `sex` tinyint(1) NOT NULL default "1", PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

  • id — порядковый номер сообщения
  • user_ip — IP-адрес пользователя, представленный в виде целого цисла
  • user_email — email-адрес пользователя
  • addtime — время добавления сообщения
  • name - имя пользователя
  • text — текст сообщения
  • admin_text — текст ответа администратора на сообщение
  • image — аватар пользователя
  • sex — пол пользователя (мужской/женский)

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

Поле sex нужно для того, чтобы выводить «правильный» аватар, в случае, когда пользователей не загрузит свой.

С базой данных разобрались. Переходим к программированию. Так как мы работаем с базой данных, то первым делом создадим самый простой класс для работы с базой данных. Для этого создадим файл DB.class.php и поместим туда следующий код:

Class DB { private static $instance; private $MySQLi; private function __construct(array $dbOptions){ $this->MySQLi = @ new mysqli($dbOptions["db_host"],$dbOptions["db_user"], $dbOptions["db_pass"],$dbOptions["db_name"]); if (mysqli_connect_errno()) { throw new Exception("Ошибка базы данных."); } $this->MySQLi->set_charset("utf8"); } public static function init(array $dbOptions){ if(self::$instance instanceof self){ return false; } self::$instance = new self($dbOptions); } public static function getMySQLiObject(){ return self::$instance->MySQLi; } public static function query($q){ return self::$instance->MySQLi->query($q); } public static function esc($str){ return self::$instance->MySQLi->real_escape_string(htmlspecialchars($str)); } }

Стоит сказать, что конструктор этого класса объявлен как private, таким образом, объект не может быть создан вне пределов класса, и инициализация возможна только из статического метода init(). Он берет массив с параметрами соединения с MySQL и создает экземпляр класса, который содержится в статической переменной self::$instance. Таким образом, обеспечивается существование единственного соединения с базой данных в конкретный момент времени.

Остальная часть класса, выполняет запросы к базе данных, на основе статического метода query().

При желании Вы можете доработать этот класс, так как Вам это нужно!

Также в разработке гостевой книги нам понадобятся вспомогательные функции, которые я вынесу в отдельный файл и назову его helper.php.

Теперь мы плавно подошли к самому главному файлу в нашем скрипте — index.php. Именно здесь и будет выполняться вся логика скрипта.

Итак, первым делом необходимо инициализировать сессию, задать основные настройки и выполнить подключение к базе данных mysql. В сессии будет храниться защитный код (капча) формы.

Session_start(); /* Конфигурация базы данных. Добавьте свои данные */ $dbOptions = array("db_host" => "localhost", "db_user" => "", "db_pass" => "", "db_name" => ""); //Подключаем класс для работы с базой данных require "DB.class.php" //Подключаем вспомогательные функции require "helper.php" // Соединение с базой данных DB::init($dbOptions); $appath = realpath(dirname(__FILE__))."/"; //Папка на сервере, куда будут загружаться аватарки $uploaddir = "images/avatars"; //Максимальное число сообщений на одной странице $per_page = 10; //Число страниц в пейджинге $num_page = 2;

Для построения навигации по страницам в гостевой книге, необходимо узнать общее число сообщений. Это можно сделать так:

//Получаем общее число сообщений $result = DB::query("SELECT COUNT(*) AS numrows FROM guestbook"); $total = $result->fetch_object()->numrows;

Теперь определим номер страницы, которую необходимо показать. Для этого обработаем переменную $_GET["p"]

$start_row = (!empty($_GET["p"]))? intval($_GET["p"]): 0; if($start_row < 0) $start_row = 0; if($start_row > $total) $start_row = $total;

$result = DB::query("SELECT * FROM guestbook ORDER BY addtime DESC LIMIT ".$start_row.",".$per_page); //Здесь будет храниться список сообщений $items = array(); while($row = $result->fetch_assoc()){ $row["addtime"] = format_date($row["addtime"],"date")."|".format_date($row["addtime"],"time"); $items = $row; }

Здесь я использовал функцию format_date() для работы с датой и временем, которую я создал в файле helper.php. Основная её задача — это вывод даты и времени в русском формате. Вот ее код:

Function format_date($date,$format = "date"){ if(empty($date)) return ""; $months = array("1" => "января", "2" => "февраля", "3" => "марта", "4" => "апреля", "5" => "мая", "6" => "июня", "7" => "июля", "8" => "августа", "9" => "сентября", "10" => "октября", "11" => "ноября", "12" => "декабря"); if($format == "time"){ return date("H:i",$date); } elseif($format == "date"){ $m = date("n", $date); $m = $months[$m]; $d = date("j",$date); $y = date("Y",$date); return $d." ".$m." ".$y; } else{ return date("d.M.Y H:i",$date); } }

Данная функция имеет всего 2 параметра:

  • $date — дата в формате UNIX (количество секунд пройденных с ночи 1-ого января 1970 - ого года)
  • $format — форма вывода даты.

Теперь мы можешь вывести список сообщений на странице. Для этого я использую следующий html-код:

Гостевая книга Отзывы оставить отзыв

Здравствуйте, друзья! Сегодня мы поговорим о создании гостевой книги дJoomla , позволяющей пользователям оставлять свои записи с вопросами, мнениями и отзывами. Для этой благой цели нам понадобится бесплатный, простой, удобный и с русским интерфейсом компонент, поддерживающий все существующие версии Joomla. Под все эти определения подходит !

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

По своей структуре гостевая напоминает страницу без какого-либо контента, но с комментариями. Отличие только в порядке добавления записей: свежие комментарии добавляются вниз списка, а в гостевой книге последние записи располагаются наоборот наверху. Кроме этого, под гостевую книгу выделяется отдельная страница, в то время как комментарии располагаются на разных страницах в качестве дополнения к их контенту.

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

Установка и русификация Phoca Guestbook

Прежде чем приступать к установки компонента Phoca Guestbook, его следует скачать. Идем на официальный сайт разработчиков , где нам следует скачать две вещи:

Поочередно установите компонент и языковой пакет к нему через . При установке Phoca Guestbook появится следующее окошко:

Так как мы устанавливаем компонент Phoca Guestbook, а не обновляем его, то нажимаем «Install». Установка пройдет автоматически, и после ее окончания в разделе «Компоненты» появится новый подпункт — «Phoca Guestbook». В него то мы и заходим.

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

Интерфейс должен быть на русском языке, что значительно упростит работу с Phoca Guestbook и создание гостевой книги Joomla. Переходим в раздел «Гостевые книги» и нажимаем на кнопку создать в тулбаре.

Все что от нас требуется, это ввести название гостевой в поле заголовка и нажать «Сохранить и закрыть» в тулбаре.

Вот так быстро мы создали гостевую книгу! Теперь следует вывести ее на страницу сайта.

За создание страниц отвечают пункты меню Joomla, поэтому создаем новый пункт меню с типом «Phoca Guestbook — Гостевая книга». В обязательных параметрах выбираем только что созданную гостевую и жмем «Сохранить и закрыть».

Настройка гостевой книги, защита от спама

Перед тем как гостевая книга примет первых пользователей, ее еще необходимо настроить и защитить от спама. В панели управления компонента Phoca Guestbook воспользуемся кнопкой «Настройки».

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

В закладке «Форма» располагаются настройки формы для составления сообщения: какие поля в ней будут присутствовать, позиция по отношению к записям, размеры окна редактора и некоторые другие опции.

В разделе «Основные» представлены следующие опции:

  • Показывать проверку пользователя — при отключенной проверке, гости сайта могут использовать для оставлении сообщения имена и адреса электронной почты зарегистрированных в Joomla пользователей.
  • Только зарегистрированные пользователи — гостевая книга станет доступна только зарегистрированным посетителям;
  • Рассматривать сообщение — перед тем, как запись появится, она должна пройти модерацию и быть одобрена админом Joomla. Работать с записями следует через раздел «сообщения» компонента Phoca Guestbook.
  • Послать Email — на email выбранного пользователя Joomla будет приходить письмо с оповещением о появлении новой записи.
  • Третий раздел «Сообщения» позволяет настроить внешний вид записей гостевой книги Joomla.

    На самом деле, я бы посоветовал отключить совсем капчу от Phoca Guestbook и воспользоваться отличным плагином .

    Последний раздел — «Права» . Задает права доступа для групп пользователей, хотя его можно вовсе не трогать.

    Вот и разобрались с плагином Phoca Guestbook. Большое спасибо за внимание! Берегите себя!

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

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

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

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

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

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

    gastroguru © 2017