Простая гостевая книга на PHP
Результат, который мы получим, можно использовать на своей страничке, в качестве скрипта отзывов или еще чего-то подобного. Статья ориентирована на то, что вы уже знакомы с PHP и MySQL, т.е. знаете азы. Для начала устанавливаем локальный сервер на вашем компьютере. В ОС Windows удобнее установить программу Denwer, скачать её можно на официальном сайте разработчиков - http://denwer.ru. Установка очень проста, поэтому на этом нет смысла останавливаться, перейдём непосредственно к созданию гостевой книги.
Сначала составим небольшое ТЗ, то есть обговорим все функции, которые нам нужны.
Например можно сделать следующее:
- Ввод данных в форму (Заполнение формы).
- Отправка обработчику.
- Вставка в БД MySQL.
- Вывод комментариев.
Теперь заходим в PHPmyAdmin и создаём БД, я назвал её «gbook», вы же можете назвать так, как вам нравится. Далее создаём таблицу, называем «comments», в нашей таблице будет всего 3 поля, а именно - это «id», «login», «text». Поле «id» будет AUTO_INCREMENT. Далее добавим в нашу созданную таблицу тестовую запись, щелкаем мышью на вкладке SQL и пишем следующее:
INSERT INTO `gbook`.`comments` (`id`, `login`, `text`) VALUES (NULL, 'Sexy Devil', 'Это
тестовый комментарий.');
Либо можно сделать это проще, если вы не знакомы с запросами в БД, просто щелкните по вкладке «Вставка» и вписывайте нужные данные, кроме поля «id», т.к. оно AUTO_INCREMENT и вставляется автоматически.
Закончили работу с БД и теперь перейдём к созданию файлов, необходимых для работы нашего скрипта.
Первый файл будет называться «index.php», в нём мы будем размещать вывод комментариев и форму ввода.
Откроем его любым текстовым редактором, в моём случае это стандартный редактор «Gedit» и начнём работать.
Для начала сделаем структуру обычного HTML:
<html>
<heade>
<title>Это гостевая книга!</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
</body>
</html>
Затем подключимся к БД:
//БД
$db = "gbook";
//Хостинг
$host = "localhost";
//Логин и пароль пользователя
$user = "root";
$pass = "";
$connect = mysql_connect($host, $user, $pass);
mysql_select_db($db);
mysql_query('SET NAMES UTF8');
if($connect == true)
{
echo "Подключение прошло успешно!" ;
}
else
{
exit("Ошибка подключения к БД!") ;
}
Обновите страницу в браузере и если не каких ошибок не возникло, вы увидите следующее сообщение:
Подключение прошло успешно!
Теперь нам нужно вывести наши данные в таблице на экран, печатаем следующее:
$res = mysql_query("SELECT * FROM `comments`") ;
while($row = mysql_fetch_assoc($res))
{
echo "<div>" ;
echo $row[login] . "<br>" ;
echo $row[text] ;
echo "</div>" ;
}
Обновляем страничку, если всё сделали правильно, вы увидите нашу запись:
Sexy Devil
Это тестовый комментарий.
Снова войдите в PHPmyAdmin и попробуйте что-нибудь добавить в нашу таблицу, после чего обновите страницу и если всё правильно получилось, после нашей первой записи, появится вторая. Продолжим, вывод комментариев закончен, теперь сделаем форму добавления, мой вариант:
<form method="POST" action="get.php">
Ваше имя:<br /> <input type="text" name="login">
<br />
Комментарий:<br /> <textarea name="text"></textarea>
<br />
<input type="submit" name="add_com" value=" Добавить комментарий ">
</form>
Создаём новый файл, который будет обрабатывать нашу форму. Я назвал его «get.php» Подключаемся к БД(как подключится, можно посмотреть чуть выше:)).
Присваиваем переменным соответствующие значения, переданные методом POST:
$login = $_POST['login'] ;
$text = $_POST['text'] ;
Далее проверяем, существуют ли эти самые переменные и не пустые ли они:
if(isset($login) && isset($text) && !empty($login) && !empty($text))
{
Обрабатываем переменные:
$login = htmlspecialchars(trim($login));
$text = htmlspecialchars(trim($text));
Вставляем результат в БД:
$res = mysql_query("INSERT INTO `comments` (`login`, `text`) VALUES ('$login', '$text')") ;
Если всё прошло успешно, произвести редирект на главную страницу:
if($res == true)
{
echo "<meta http-equiv='Refresh' content='0; URL=index.php'>";
}
else { echo "Ошибка добавления записи в БД!" ; }
}
else
{
echo "Заполните соответствующие поля!" ;
}
Теперь можете добавлять сообщения и они точно также будут выводится. Простая гостевая книга готова! Вы можете использовать её на своём сайте!