От автора: у всех людей собаки как собаки, а мой вообще ничего не хочет понимать! Хотя, когда зовешь есть, то он бежит самый первый на кухню. Сосед говорит, что я неправильно команды подаю псу, поэтому мне поможет обратная связь PHP скрипт для общения с животным.
С людьми легче!
Со своим псом я решил подождать, и для начала «потренироваться» на людях. Для реализации моего плана предлагаю заняться написанием формы для общения с пользователями ресурса. Немного «пофилософствуем». Форма для организации обратной связи должна иметь несколько полей:
Для ввода имени пользователя.
Текста сообщения.
Кроме этого в ней может присутствовать поле для указания email отправителя. Но если форма предназначена для связи с пользователями ресурса, то запрос «мыла» лучше реализовать во время процедуры регистрации.
После этого полученный текст сообщения нужно отправить на сервер и где-то сохранить. Для этого мы создадим таблицу MySQL и скрипт формы обратной связи PHP, который будет заносить полученные данные в БД.
Форма для «взаимопонимания»
Начнем с главного элемента нашего проекта – формы. Вот коде ее разметки:
1 2 3 4 5 6 7 8 9 10 11 12 |
<body> <div style="background-color: rgb(204,204,204); width: 600px;border: 2px double #FF33CC;"> <form name="form1" method="post" action=""> <h2 style="color: rgb(102,51,255)"> Оставьте свое сообщение для администратора ресурса:</h2> <h3>Представьтесь, пожалуйста:</h3> <p><input type="text" name="polsovatel" size="25" placeholder="Ввведите свое имя"/></p> <h3>Текст сообщения:</h3> <p><textarea name="message" cols="40" rows="5" placeholder="Ввведите текст сообщения"></textarea></p> <p><input type="submit" name="server_button" value="Отправить"/></p> </form> </div> </body> |
Так форма выглядит в браузере:
Создаем таблицу и записываем обращения пользователей
Теперь нам нужно создать таблицу для записи и хранения всех обращений пользователей. На практике перед этим должна проходить процедура авторизации или регистрации, но мы ее опустим. Отмечу, что при этом чаще всего используется одна и та же таблица (или взаимосвязанные между собой таблицы).
Структура той, которую создал я. Обратите внимание, что для столбца, где будет храниться сообщения (user_message) задан тип данных text.
Сохраните верстку таблицы на стороне сервера в отдельном файле. Теперь займемся написанием скрипта-обработчика формы обратной связи на HTML и PHP. Создайте еще один файл и назовите его handler.php. Не забудьте прописать его в атрибуте формы action. Код обработчика:
1 2 3 4 5 6 7 8 |
<?php $polsovatel = $_POST["polsovatel"]; $message = $_POST["message"]; $polsovatel = htmlspecialchars($polsovatel); $message = htmlspecialchars($message); $mysqli = new mysqli('localhost', 'root', '', 'db1'); $mysqli->query("INSERT INTO `message_user`(`id`,`users`,`user_message`) VALUES (NULL,'$polsovatel','$message')"); ?> |
Теперь проверим, как работает наш модуль обратной связи. Для этого заполним поля формы и отошлем их на обработку нажатием кнопки «Отправить». В результате мы видим, что сообщения Василия о желании получить еще больше «безвозмездного» пива сохранилось в нашей таблице :).
Дополняем функционал модуля
Для налаживания взаимопонимания со своими юзерами – этого мало! Чем раньше ответите на сообщение пользователя, тем лучше для популярности ресурса. Но ведь вы не будете постоянно сидеть в интернете, поэтому стоит реализовать отправку уведомления о получении сообщения на «мыло» админа сайта. Чтобы это сделать, добавьте к предыдущему коду PHP еще кусок:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php header('Content-Type: text/html; charset=utf-8'); $email = "admin@mail.com"; $pagetitle = "Новое сообщение с сайта"; $text = "Имя: ".$polsovatel."\n Текст: ".$message; if (mail($email, $pagetitle, $text, "Content-type: text/plain; charset=utf-8")) { echo '<script> alert("Сообщение успешно отправлено"); </script>'; } else{ echo '<script>alert("Сообщение ne отправлено"); </script>'; } ?> |
Первую строчку добавьте в самый верх, чтобы в диалоговом окне JS не было «кракозябр». Теперь проверим дополненный скрипт обратной связи для сайта на PHP.
Заглянем в БД. Запись в таблицу добавлена.
Так как я использую Денвер, то всю «мыльную» переписку следует «ловить» в папке tmp\!sendmail
Ну, с людьми поладил, теперь могу и со своей собакой договориться. Хотя для нее придется еще и мяском запастись :).