Делаем фому обратной связи на PHP

Обратил внимание на то, что в мой блог стали приходить посетители по поисковой фразе «форма обратной связи на PHP». Ну что же, раз уж приходят посетители по этой фразе, то, наверное, самое время написать статью на эту тему.

В принципе форму обратной связи для сайта сделать совсем не трудно, нужна только сама форма и обработчик для нее. Форма — это набор тех самых полей, которые нужно заполнять пользователю, она может быть вставлена на любую страницу сайта. В функции же обработчика формы входит получение данных из формы, их проверка и передача их по назначению. Обработчик может сохранить данные в базу данных, вывести на страницу, отправить при помощи функции sendmail либо при помощи SMTP. В данной статье мы рассмотрим простой скрипт, который будет получать данные из формы и отправлять их при помощи sendamil.

Итак, для начала нам нужна сама форма.

<form action="mailer.php" method="post"> Ваше имя: <input name="userName" type="text"><br> Ваш E-mail: <input name="userEmail" type="text"><br> Ваше сообщение: <textarea name="userMessage"></textarea><br> <input type="submit" value="Отправить"><input type="reset" value="Очистить"> </form>

Эта форма будет отправлять имя, E-mail и сообщение скрипту, который называется mailer.php. А теперь сам скрипт обработки:

<?php //Получаем данные из формы $userName = $_POST['userName']; $userEmail = $_POST['userEmail']; $userMessage = $_POST['userMessage']; //Настройки скрипта $mailTo = 'admin@site.com'; $mailFrom = 'feedback@site.com'; $return = 'index.php'; $mailHeader = 'Content-type: text/html; charset=utf8 \r\n'; $mailHeader .= 'From: $mailFrom'; //Проверяем все ли поля заполнены и отправляем форму на E-mail if(!$userName){ echo 'Вы не указали своего имени.'; }else if(!$userEmail){ echo 'Вы не указали обратный адрес.'; }else if(!$userMessage){ echo 'Вы не указали текст сообщения.'; }else{ mail($mailTo, "Вам было отправлено сообщение от $userName, $userEmail", $userMessage, $mailHeader); header("Location: " . $return); } ?>

Теперь расскажу о настройке этого скрипта: В переменную $mailTo запишите адрес E-mail, на который следует отправлять сообщения, полученные при помощи формы обратной связи. В переменную $mailFrom запишите адрес с которого эти сообщения будут отправляться. В переменную $return запишите адрес страницы, на которую будет перекинут пользователь после того, как он отправит вам сообщение при помощи формы обратной связи.

Позже напишу как сделать скрипт проверки введенных в форму данных.

Обратите внимание, для работы этого скрипта на вашем сервере должна быть включена функция sendmail. Ее, как правило, отключают на бесплатных хостингах.


13.06.2010, 12:56
  php, feedback, sendmail, форма обратной связи.
Просмотров: 2057.
9