Выпуск №1.
Создание формы обратной связи


Если видео не загружается, то посмотрите его здесь
В данном выпуске мы создадим форму обратной связи с использованием PHP. Форма обратной связи - элемент практически любого сайта. Безусловно, можно дать просто e-mail адрес, но в большинстве случаев гораздо удобнее для пользователей будет именно отправка сообщений через форму на сайте.
Вы увидите процесс обработки формы обратной связи. Просмотрев урок, Вы:
- Научитесь обрабатывать формы на PHP.
- Научитесь отправлять e-mail с помощью PHP.
- Узнаете, как правильно проверять работу формы обратной связи.
Если Вы хотите скачать видео к себе на компьютер, то посмотрите инструкцию: как скачивать с YouTube.
P.S. А чтобы лучше понимать, что я пишу в данном уроке, Вам нужно знать PHP. Об этом языке подробно рассказывается в флагманском Видеокурсе "PHP и MySQL с Нуля до Гуру 2.0": https://srs.myrusakov.ru/php7.
Комментарии (39):
Добавить комментарий:
Вот код обработки:
<?php
$name = $_POST['name'];
$phone = $_POST['phone'];
$to = "office@nasled.info";
$from = "noreply@nasled.info";
$subject = "Заявка от $name";
$subject = "=?utf-8?B?".base64_encode($subject)."?=";
$headers = "From: $from\r\nReply-To: $from\r\nContent-type: text/plain; charset=utf-8";
mail($to, $subject, $phone, $headers);
$redir = $_SERVER['HTTP_REFERER'];
if (strpos($redir, "request=1") === false) $redir .= "?request=1";
header("Location: $redir");
?>
Михаил, подскажите, плиз, как сделать, чтобы при перезагрузке страницы обратной связи исчезало сообщение об успешной отправке формы?
if ($_GET["mail"] == 1) echo
echo("<p>Спасибо! Ваше письмо отправлено.</p>");
?>
выводит просто текст - Спасибо! Ваше письмо отправлено.";?>
Миша, что я не правильно делаю?
Спасибо! Ваше письмо отправлено.
';
<?php
$name = $_POST['name'];
$message = $_POST['message'];
$to = "chvikup@ya.ru";
$from = "noreply@chvikup.ru";
$subject = "Сообщение на Вашем сайте";
$subject = "=?windows-1251?B?".base64_encode($subject)."?=";
$headers = "From: $from\r\nReply-To: $from\r\nContent-type: text/plain; charset=windows-1251\r\n";
mail($to, $subject, $message, $headers);
$redir = $_SERVER['HTTP_REFERER'];
if (strpos($redir, "mail=1") === false) $redir .= "?mail=1";
header("Location: $redir");
?>
Просмотрев ваш видеокурс по верстке HTML, я пытался сверстать форму обратной связи. В видео вы говорили про файл request.php. Возможно я был невнимателен, но я не нашел нигде применр создания данного файла, а без него естественно происходит ошибка! Пожалуйсто дайте ссылку на урок с данным файлом!
техподдержка хостинга ответила -
550-5.7.1 [178.20.153.123] Our system has detected that this message is\n550-5.7.1 not RFC 2822 compliant. To reduce the amount of spam sent to Gmail,\n550-5.7.1 this message has been blocked. Please review\n550 5.7.1 RFC 2822 specifications for more information.
Если я правильно понимаю, необходимо указать правильные заголовки писем, согласно RFC2822.
Заголовки -$headers= "MIME-Version: 1.0\r\n";$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
сам сенд -$send = mail($emailto, $subject, $message, $headers);
как исправить проблемку?
можете о заголовках рассказать? какие они еще бывают?
[ICO] Name Last modified Size Description
[TXT] index.html.txt 14-Sep-2013 23:07 19
Apache/2.2.22 (Win32) mod_ssl/2.2.22 OpenSSL/1.0.1c PHP/5.3.13 Server at mysite.az Port 80 если не трудно поясните в чем проблема заранее спасибо!!