Гостевая книга с математической Captcha безопасности | Уроки по PHP

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

Шаг-1 И первым действием будет создания необходимых таблиц в базе данных в которых в дальнейшем будет храниться информация, для этого выполните SQL запрос который представлен ниже.

--  -- Структура таблицы `s_guestbook` --    CREATE TABLE `s_guestbook` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `ip` varchar(16) NOT NULL DEFAULT '',  `name` varchar(32) NOT NULL DEFAULT '',  `message` text NOT NULL,  `when` int(11) NOT NULL,  PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;  

Шаг-2 Теперь определим стили внешнего вида гостевой книги, создайте новый CSS файл с именем main.css и скопируйте в него набор стилей ниже.

body { background:#eee; font-family:Verdana, Helvetica, Arial, sans-serif; margin:0; padding:0; } .example { background:#FFF; width:625px; font-size:80%; border:1px #000 solid; margin:3.5em auto 2em; padding:1em 2em 2em; } .post  { border:1px #DDD dashed; margin:5px;
padding:5px; font-size:11px;
width:95%; } .example form div { margin-bottom:5px; }

Шаг-3 И вот теперь приступим к самому PHP, далее будет представлено листинги php файлов которые осуществляют работу создаваемой нами гостевой книги.

index.php

Этот файл выполняет показ форм ввода и Captcha, а также проверяет правильность введённых данных и если всё верно, выводит ваше сообщение и 14 последних.

guestbook.inc.php

  

Этот файл является библиотекой классов для нашей гостевой книги.  Он содержит необходимые функции addPost — для добавления новых сообщений, getAllPosts – возвращает нам последние 15 записей из базы данных, getMathCaptcha – генерирует capthca, getVisitorIp – получает  IP посетителя. На этом всё.