Форма обратной связи на сайт php

Форма обратной связи на сайт php

Привет ребята. На связи Серёга. Знаю, что давно не писал — дела, дела. Да и сейчас, если честно, времени совсем нету. И форму будем делать не по моему уроку, а по урокам моего знакомого — Кротова Романа.

Создавать форму обратной связи для сайта мы будем последовательно. Поэтому эта статья будет разбита на 3 урока.

В первом видео — мы просто заведём её в HTML и создадим PHP-обработчик для отправки писем. Всё будет последовательно, с нуля и до результата. Так, что бы вы всё поняли, и смогли самостоятельно встроить нужные поля.

Во второй части Рома, покажет Вам как сделать Ajax-загрузку. То есть отправлять данные с формы без перезагрузки странички. Что, согласитесь, весьма удобно и современно.

Ну и в третьей (урок готовится — позже здесь будет ссылка), мы встроим проверку на валидацию. Не средствами браузера, а при помощи специальных скриптов.

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

Обращаю внимание! Что бы форма заработала — необходимо, что бы ваш хостинг поддерживал PHP.

Если у вас возникнут вопросы касательно непонятных моментов в написании обработчика формы для отправки писем — не стесняйтесь, задавайте их в комментариях.

Код из урока по созданию формы обратной связи

Вот что получилось в итоге в файле index.php

Напоминаю, что в нём содержится простенькая форма обратной связи. Без оформления и прочих прибамбасов. Что бы не нагружать Вас лишней информацией.

Содержимое файла submit.php:

Здесь осуществляется базовая проверка формы на заполненность, что бы не отправлять пустые сообщения. Если всё "гуд" — письмо отправляется. И идёт переадресация на страницу-уведомление об успешном отправлении письма.

Ну а саму страницу уведомление не вижу смысла здесь размещать. Там базовая структура HTML-документа и всего одна строчка текста.

Видео 2. Ajax — отправка письма без перезагрузки страницы.

Для прохождения второго урока, нам понадобится библиотека jQuery. Мы её подключали с официального сайта jquery.com (ссылка ведет на страницу загрузки).

Ребята, решил что не буду публиковать код формы обратной связи. Какой смысл в этом, если есть ссылка на оригинал автора??

Видео 3. Валидация — проверка формы на правильность заполнения.

Как сделать чтобы отправляло два письма — тому, кто пишет (он вводит свой мейл) и администратору системы (магазина). Еще добавление файлов к форме отправки

mail("drugoisvet@gmail.com, admin@krotovroman.ru", $theme .

Здравствуйте, Сергей и Роман!

Спасибо за Ваши уроки!

Но . — большая просьба: покажите как поставить капчу и как пристегнуть картинку, видео ??

Причем так, чтобы они не просто попадали на сервер, а на необходимы почтовый адрес.

По вложению файлов и капче — надо отдельное видео записывать.

Роман ждем уроков по капче. Вообще было бы круто если бы Вы полностью закрыли вопрос обратной связи. В интернете встречаются уроки кусочками. Вот например, надо вставить капчу, кому то надо прикрепить файл для отправки, или добавить выпадающий список и чекбоксы и т.д. Как сделать красивое всплывающее сообщение на аяксе "Отправлено".

Тут получается полный курс. В интернете толковой информации по всем вопросам в одном курсе не видел. Приходится все собирать крупицами. Было бы здорово полностью всесторонне рассмотреть вопрос формы обратной связи.

Есть полный курс у меня Мастер PHP PRO.

Читайте также:  Что значит искать закладку

Напишите мне в личку, я скину: https://vk.me/krotovromanpublic

Спасибо за урок. Ждем новых уроков. Просмотрел урок бегло. Так как не закончил ещё изучение "верстаем на 5 с плюсом". Урок впринципе понятен. Так как сам программирую на языке мкл5. Тема Ваша интересна. После изучения буду изучать Ваш курс "Видеокурс «Мастер PHP»".

Хорошо. Всегда рад видеть!

Посмотрел уроки, возникло пару вопросов:

1. Зачем назначать документу расширение .php, если там чистый html?

2. Почему нет закрытия кода в файле submit.php?

Здравствуйте Кирилл. Спасибо за вопросы!

1. Урок по PHP а не по HTML и я заранее на будущее сразу создаю PHP файл, потому что в следующих уроках это пригодится. Но в данном конкретном случае, действительно, Вы можете делать форму в HTML файле, потому что php код в нем не используется.

2. Тега закрытия в конце файла submit.php нет, потому что он не требуется там. Там чистый PHP без примеси HTML. Если комбинировать в файле HTML код со вставками PHP, то PHP теги надо закрывать. Если будете дальше смотреть мои уроки по этой теме, возможно, увидите такие примеры.

С уважением, Кротов Роман.

Здравствуйте! Как сделать, чтобы сообщение об отравке исчезало через несколько секунд?

Добрый день. Прошу простить, но скачала форму , установила на локальный сервер. И ничего не работает. помогите разобраться почему. пожалуйста

Сделайте все точно так же как в видеоуроке и всё получится.

В крайнем случае создайте тему на моем форуме: https://support.krotovroman.ru/

И со скриншотами покажите по порядку что вы делали и какие ошибки появляются.

Добрый день. Установил форму на сайт и в консоли появилась ошибка Uncaught TypeError: $.validate is not a function Подскажите, с чем она связана и как ее устранить?

Разобрался. Нужно добавлять скрипты именно в таком порядке

Ошибка исчезла, но форма все равно не реагирует. Не проверяет заполнение поля и не отправляет.

Помогите исправить обработчик в форме обратной связи. К сожалению сам с РНР, мягко говоря, на Вы.

А проблема в следующем.

У нас только один почтовый ящик и в его настройках, на сервере хостинга, указана переадресация на почту Яндекса на fanat1959@yandex.ru.

Но пересылается на Яндекс только примерно половина писем, остальные нет. Т.е. я ВСЕ входящие письма вижу в ящике на хостинге, а на почте Яндекса — только половину.

В службе поддержки хоста написали (вкратце):

ВСЕ письма поставлены в очередь почтовой службы Яндекс, однако по части из них получены отказы в доставке, поскольку форма обратной связи сайта установила в письме в качестве заголовка отправителя email посетителя сайта, например ниже "inek@flowers56.ru", "aj.sidorov@physics.msu.ru", или пустое.

Письмам с такими отправителями в заголовках письма, при отправке с любого, не только с нашего виртуального хостинга, будет отказано в доставке почтовой службой Яндекс для предотвращения спуфинга — подделки отправителя письма.

Рекомендуем пересмотреть исходный код формы обратной связи и изменить его таким образом, чтобы электронный адрес посетителя сайта добавлялся, например, в заголовок "Reply-to:".

Вот часть кода обработчика на РНР:

$mail_addr = array ("info@fanatgusyatnik.ru"); // сюда необходимо подставить СУЩЕСТВУЮЩИЙ на сервере email, с него будет рассылка

#header ("Location: sm_success.htm");

header ("Location: sm_failed.htm");

$mail_subj = "Вопрос к Фанат Гусятник — ".$p["Subject"];

$sender_mail = array ("E_mail" => "E-mail");

Читайте также:  Подставка зарядка для айфона

foreach ($sender_mail as $key => $item)

if (isset($p[$key]) && chop($p[$key]))

$mail_head = "From: "."
";

$mail_head .= "Content-Type: multipart/mixed; boundary="".$mail_bond."""."
";

$mail_body = "—".$mail_bond."
"."Content-Type: text/plain; charset=Windows-1251"."
";

$mail_body .= "Content-Transfer-Encoding: 8bit"."

";

$mail_body .= ‘== Новое письмо с сайта Фанат-Гусятник ==’."
";

Подскажите пожалуйста куда и что прописать в "Reply-to:".

Доброго времени суток. У меня проблема со скриптом. установил полностью скаченный скрипт на локальный сервер всё сработало. установил на сервер где расположен сайт выдаёт "ошибка при отправке сообщения", при этом я для проверки создал отдельную директорию и ничего не менял кроме e-mail адреса. дал права всем файлам 777. но всё тщетно. в чём может быть проблема?

1. При открытии письма не работают переносы строк. Вся информация идет в одну строку http://joxi.ru/xAeNPoLup7K3vr. Как можно исправить такое.

2. Очень актуальный вопрос по созданию нескольких обратных форм на одной странице. Скажем, есть лендинг и на него необходимо разместить три формы обратной связи. Также следует отслеживать нажатия на кнопку по каждой форме. То есть им присваивается личный идентификатор.

Вы прекрасно показали и рассказали, как сделать одну форму на странице. А если надо несколько, тогда что получается необходимо делать несколько index.php и submit.php. что ли дублировать форму несколько раз в корне сайта. Или есть возможность как-то объединить эти формы в одном файле?

Большая просьба помочь в этом вопросе.

Подскажите как сделать чтобы на почту приходило название объекта которому направляется письмо, чтобы я тоже мог видеть кому именно пришло письмо.

Суть в том, что на сайте много страниц и на каждой свой адрес получателя+моя почта. Так вот когда мне приходит копия письма я не знаю кому был отправлен оригинал. Чтобы файл с PHP был один.

Подскажите как прописать путь от js к submit.php если они находятся в разных папках на сервере?

Здравствуйте! Спасибо за Ваш урок! Все получилось, но не могу сообразить только одно.

Есть форма и при нажатии на кнопку выполняется скрипт JS:

var vz = "f";// это так для примера

// само исполнение при нажатии на кнопку

$(this).val("Отправляется. " ); // Перед отправкой меняем название кнопки. Это работает

$.post( // три параметра метода Post

"submit.php", // 1-ый параметр — путь до файла submit.php

// Как написать код , я думаю что здесь, что бы результат передавался в переменную

// в переменную vz и далее название кнопки изменилось . .

$(this).val(vz) ; // Текст кнопки

Вопрос в следующем.Как из функции function (vozvrat) результат присвоить переменной VZ , что бы на кнопке отображались соответствующие надписи из файла submit.php ( видеоурок 2), как у Вас?

Доброго времени суток. Урок очень полезный и я такую форму с доработками установил на свой сайт. Сейчас столкнулся с такой проблемой. На странице где форма обратной связи я сделал еще одну форму для добавления комментариев с использованием бд. Проблема в выводе результата PHP проверки, так как он выводится в блок div одновременно на двух формах. Подскажите как их разделить.

Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in D:xampphtdocs estformsubmit.php on line 17

Читайте также:  Почему не открывается файл в формате pdf

Я свою почту указал. На локальном сервере xampp такая ошибка

Самый уникальный скрипт формы обратной связи, из всех, что я встречал, нашел на этой сайте http://webdesign-master.ru/blog/tools/578.html и использую уже очень давно.

Выложу здесь коды, чтобы было проще копировать, но все исходники есть на GitHub https://github.com/agragregra/uniMail.

В чем уникальность этого скрипта – в том, что у вас может быть любая форма с любым количеством различных полей, и не нужно под каждое поле создавать вывод данных в письме, скрипт просто проходит по всем полям и выводит все данные из них. Например, при добавлении нового поля в файле html, нет необходимости добавлять еще какие-то параметры в mail.php. И это очень круто и просто. То есть форма будет работать уже при минимальных правках из коробки.

index.html

В скрытые поля вносим данные для отправки письма – Имя отправителя, имя отправителя (он же и получатель), тема письма.

script.js

Перед подключением скрипта обязательно подключаем jquery, если он еще не подключен:

В данном скрипте при успешной отправке сообщения выводится alert, который при необходимости можно заменить на всплывающее сообщение или что-то другое

mail.php

Файл mail.php – основной, он собирает все данные из полей формы и отправляет на почту.

Видео

Очень часто клиенты просят сделать у них на сайте удобную форму обратной связи. Удобство заключается в том, что после отправки заявки страница сайта не перезагружается, а мгновенно выдает пользователю сообщение об успешной операции. Также если пользователь забудет заполнить необходимые поля, то получит сообщение об ошибке.

Для этой тривиальной задачи, я заранее нашел и модифицировал скрипт, который работает на AJAX технологии. Также я подготовил красивое оформление полей, используя фреймворк Bootstrap 3. Достаточно скопировать мои CSS-стили и форма примет готовый для использования вид.

1 — подключаем Jquery библиотеку:

2 — устанавливаем HTML форму с использованием Bootstrap разметки:

3 — размещаем JS скрипт

Этот скрипт размещается непосредственно под HTML формой и после объявления jQuery.

4 — рассмотрим код обработчика, который нужно разместить в файл post.php

В обработчике достаточно поменять значение переменной $mail_to, вписав туда свою почту.

4 — копируем стили оформления

Для корректного отображения формы должен быть подключен Bootstrap 3.

Вот и все! Наша форма готова. Скачивайте и оставляйте свои комментарии.

Cмотрю на свой контент и думаю: стал бы я сам делиться им с друзьями?

Похожие статьи:

Комментарии ( )

Здравствуйте! Я не тестировал, но должно сработать вот так:

После этой строчки
$(‘.messages’).html(data.result);

Нужно добавить в select атрибут name, вот так:

Здравствуйте Алексей. Все сделал как вы сказали но что то не работает. Не отправляет форма. Показывает что поле select не заполнено.
в файл PHP дополнительно добавил следующее ниже скрипт. Вроде скрипт php делает проверку поля select но само поле в html остается чистым незаполненным возможно что то с не стыковка с bootstrap.CSS или надо дописать CSS к форме. Если не трудно посмотрите приложил архив form_select.rar

В файл PHP дополнительно добавил следующее.
// проверяем корректность полей if($_POST[‘select[name="form_str"]’] == "") $errors[] = "Поле Тип списков не заполнено"; // собираем данные из формы $message .= "Тип списков: " . $_POST[‘select[name="form_str"]’] . " ";

Вы должны авторизоваться, чтобы оставлять комментарии.

Ссылка на основную публикацию
Установка mac os transmac
В сети сейчас полно копипастов, по сути одной и той же статьи, про установку MacOS X на хакинтош примерно с...
Тест для определения цвета волос
Пожалуйста, не копируйте понравившиеся вам статьи незаконно. Мы предлагаем вам разместить активную ссылку на наш сайт в случае, если вы...
Тест графики видеокарты 3dmark
Наиболее известная программа тестирования производительности, ставшая де-факто стандартом и точкой отсчета в измерениях игровых возможностей видеокарт. Основную популярность программе обеспечило...
Установка op com на windows 10
Всем привет! Очень многие вектроводы заказывают с Китая OP-COM и сталкиваются с проблемами установки драйверов самого OP-COM на различных системах...
Adblock detector