Форма обратной связи для сайта | PHP

Форму связи можно поместить на страницу сайта "Контакты". Её просто сделать. Если принять предложенный CSS стиль, то форма будет "резиновой":

Как к Вам обращаться: Email для связи: Ваше сообщение:

Ниже представлены два варианта скрипта отправки почты: с Javascript и без

1. Форма связи без перезагрузки

  1. PHP вынесен в отдельный файл
  2. при нажатии клавиши F5 форма не будет отправлена снова
  3. после отправки формы страница не будет перезагружена
  4. проверка на правильность заполнения полей осуществляется не на стороне сервера
  5. не поддерживается IE8 и ниже (нужно дополнить код аналогами addEventListener(), preventDefault() и XMLHttpRequest или использовать вариант 2)

Файл contacts.html

<!DOCTYPE html>
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>


<!-- атрибут required говорит, что заполнение поля обязательно -->
<form method="POST" id="feedback-form">
Как к Вам обращаться:
<input type="text" name="nameFF" required placeholder="фамилия имя отчество" x-autocompletetype="name">
Email для связи:
<input type="email" name="contactFF" required placeholder="адрес электронной почты" x-autocompletetype="email">
Ваше сообщение:
<textarea name="messageFF" required rows="5"></textarea>
<input type="submit" value="отправить">
</form>

<script>
document.getElementById('feedback-form').addEventListener('submit', function(evt){
  var http = new XMLHttpRequest(), f = this;
  evt.preventDefault();
  http.open("POST", "contacts.php", true);
  http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  http.send("nameFF=" + f.nameFF.value + "&contactFF=" + f.contactFF.value + "&messageFF=" + f.messageFF.value);
  http.onreadystatechange = function() {
    if (http.readyState == 4 && http.status == 200) {
      alert(http.responseText + ', Ваше сообщение получено.\nНаши специалисты ответят Вам в течении 2-х дней.\nБлагодарим за интерес к нашей фирме!');    
      f.messageFF.removeAttribute('value'); // очистить поле сообщения (две строки)
      f.messageFF.value='';
    }
  }
  http.onerror = function() {
    alert('Извините, данные не были переданы');
  }
}, false);
</script>

Файл contacts.php

<?
if (array_key_exists('messageFF', $_POST)) {
   $to = 'свой@yandex.ru';
   $subject = 'Заполнена контактная форма с '.$_SERVER['HTTP_REFERER'];
   $subject = "=?utf-8?b?". base64_encode($subject) ."?=";
   $message = "Имя: ".$_POST['nameFF']."\nEmail: ".$_POST['contactFF']."\nIP: ".$_SERVER['REMOTE_ADDR']."\nСообщение: ".$_POST['messageFF'];
   $headers = 'Content-type: text/plain; charset="utf-8"';
   $headers .= "MIME-Version: 1.0\r\n";
   $headers .= "Date: ". date('D, d M Y h:i:s O') ."\r\n";
   mail($to, $subject, $message, $headers);
   echo $_POST['nameFF'];
}
?>

2. Форма связи без JavaScript

  1. в большинстве случаев расширение файла должно быть .php
  2. при нажатии клавиши F5 форма будет отправлена снова
  3. после отправки формы страница будет перезагружена
  4. проверка на правильность заполнения полей осуществляется не на стороне сервера

Файл contacts.php

<!DOCTYPE html>
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
<style>
#feedback-form {
  max-width: 400px;
  padding: 2%;
  border-radius: 3px;
  background: #f1f1f1;
}
#feedback-form [required] {
  width: 100%;
  box-sizing: border-box;
  margin: 2px 0 2% 0;
  padding: 2%;
  border: 1px solid rgba(0,0,0,.1);
  border-radius: 3px;
  box-shadow: 0 1px 2px -1px rgba(0,0,0,.2) inset, 0 0 transparent;
}
#feedback-form [required]:hover {
  border-color: #7eb4ea;
  box-shadow: 0 1px 2px -1px rgba(0,0,0,.2) inset, 0 0 transparent;
}
#feedback-form [required]:focus {
  outline: none;
  border-color: #7eb4ea;
  box-shadow: 0 1px 2px -1px rgba(0,0,0,.2) inset, 0 0 4px rgba(35,146,243,.5);
  transition: .2s linear;
}
#feedback-form [type="submit"] {
  padding: 2%;
  border: none;
  border-radius: 3px;
  box-shadow: 0 0 0 1px rgba(0,0,0,.2) inset;
  background: #669acc;
  color: #fff;
}
#feedback-form [type="submit"]:hover {
  background: #5c90c2;
}
#feedback-form [type="submit"]:focus {
  box-shadow: 0 1px 1px #fff, inset 0 1px 2px rgba(0,0,0,.8), inset 0 -1px 0 rgba(0,0,0,.05);
}
</style>

<?
if (isset ($_POST['messageFF'])) {
  mail ("свой@yandex.ru",
        "заполнена контактная форма с ".$_SERVER['HTTP_REFERER'],
        "Имя: ".$_POST['nameFF']."\nEmail: ".$_POST['contactFF']."\nСообщение: ".$_POST['messageFF']);
  echo ('<p style="color: green">Ваше сообщение получено, спасибо!</p>');
}
?>

<form method="POST" id="feedback-form">
Как к Вам обращаться:
<input type="text" name="nameFF" required placeholder="фамилия имя отчество" x-autocompletetype="name">
Email для связи:
<input type="email" name="contactFF" required placeholder="адрес электронной почты" x-autocompletetype="email">
Ваше сообщение:
<textarea name="messageFF" required rows="5"></textarea>
<input type="submit" value="отправить">
</form>

Рекомендации к скрипту отправки почты

  1. нужно заменить свой@yandex.ru
  2. нужно заменить contacts.php на полный адрес, например, http://сайт.ru/папка/папка/contacts.php
  3. для того, чтобы добавить новое поле, нужно внести изменение в HTML, JavaScript и PHP код. Другими словами, добавить те же участки, что и для contactFF. Пример согласно описанию в комментарии 194 можно увидеть тут.

Почему письма не приходят

  1. письма от хостинга фильтруются и не попадают даже в папку "Спам"
  2. хостинг не имеет поддержки (не верно настроена или отключена) PHP-функции mail()

Что делать:

  1. создать файл "test.php" с содержимым
    <?
       mail("свой@yandex.ru", "Тема", "Сообщение");
    ?>
  2. чтобы письмо отправилось, перейти (открыть в окне браузера) на страницу "test.php"
  3. если спустя 20-30 минут письмо отсутствует в папках "Входящие" и "Спам", обратиться за разъяснениями в службу поддержки хостинга

Используемые материалы: irbis-team.com

в f t
наверх ↑

205 комментариев:

1 – 200 из 205   Новые›   Самые новые»
Юлия Алешкина
ДОброе утро! Большое спасибо за Ваш сайт и всю-всю полезную информацию!
Многое почерпнула и применила некоторые элементы.
Я не очень сильна в языке программирования, поэтому хотела спросить.
1. Если я правильно понимаю, ту часть кода, что обведена пунктирчиком, надо добавить в CSS, да?
2. А со второй частью что делать? ее куда надо добавить?
Я хотела сделать отдельную страничку для контактной формы и запуталась с нижним (вторым кодом)
NMitra
Доброе утро, это для Blogger не подойдёт. Вот здесь есть заметка http://www.elenagrishina.com/2013/08/contact-form-blogger.html Я код ещё толком не рассматривала, планирую в будущем статью написать.
Юлия Алешкина
Спасибо большое за ответ. Жаль, думала, что это как раз Вы для блоггера сделали...
Лену Гришину люблю и читаю. Попробую реализовать ее вариант.
Еще раз спасибо :)
NMitra
Юлия, посмотрите http://shpargalkablog.ru/2014/01/feedback-form-blogger.html
Анонимный
Помогите пожалуйста с формой. Ввел код а css, и в html.
Сообщение не отправляет и при отправке показывает

Ваше сообщение получено, спасибо!
'); $_POST['nameFF'] = $_POST['contactFF'] = $_POST['messageFF'] = ''; } ?>

NMitra
Там сложно что-то ни так сделать. Каков URL сайта?
Анонимный
этого уже нет. но сообщение приходит вот такое

п≤п╪я▐: п©п╡я▀п╟п©п╡п©
Email: suzaku_lan@mail.ru
п║п╬п╬п╠я┴п╣п╫п╦п╣: п╬я─п©п╬п©п╬я─я─п╦я─п╬п╦
NMitra
Это мы уже проходили http://shpargalkablog.ru/2013/08/bell-site.html#c504048085270108536 . Приведите скрипт к виду:

mail ("свой@yandex.ru",
"заполнена контактная форма с ".$_SERVER['HTTP_REFERER'],
"Имя: ".$_POST['nameFF']."\nEmail: ".$_POST['contactFF']."\nСообщение: ".$_POST['messageFF'], "Content-type: text/html; charset=utf-8 \r\n");
Анонимный
Сделал так, но теперь сообщение на почту не приходит, хотя на сайте пишет что сообщение отправлено
Анонимный
почта mail.ru. Может в этом дело.
Анонимный
Вернул то, что было до отравления и вставил почту яндекса. Все работает. Но можно ли сделать так чтобы и на мейл ру приходило в правильной кодировке
Анонимный
Правда заметил, что на яндекс приходит через раз.
NMitra
Дополнила статью, попробуйте. Отпишитесь, пожалуйста, о результате. Не имею адреса на mail.ru, не могу проверить.

На Яндекс.почте не заметила проблем, хотя уже пачку писем поотправляла.
Kirill Titov
Не работает. После нажатия на "отправить" ничего не происходит.
NMitra
Свой адрес почты поставили?
Для Blogger другая форма http://www.blogger.com/profile/17317191596919797566
tohenson
Подскажите. Если создать ещё одно поле (Например: "Ваш возраст"), то как можно добавить его содержимое в письмо ?
NMitra
"Имя: ".$_POST['nameFF']."\nEmail: ".$_POST['contactFF'].

"Имя: ".$_POST['nameFF']."\nВозраст: ".$_POST['vozrastFF']."\nEmail: ".$_POST['contactFF'].

А html будет

input type="text" name="vozrastFF"
Марина
Наташа! Добрый день! Теперь здесь вопросы)))
Код, который дан выше со стилями вместе нужно весь вставлять в страницу HTML или для скрипта PHP нужно тоже сделать отдельный файл и залить в корень сайта, как с формой Обратный Звонок?
Я уже писала вам в личку, но ничего у меня не вышло с отправкой, может быть именно в этом проблема, в отдельном файле?
и еще, я например хочу сделать на сайте несколько форм обратной связи, но 2.3.4 файла mail.php не загружает, просит переименовать.
Вопрос такой- можно каждый следующий файл mail.php переименовывать например mail.php1 или 1mail.php, 2mail.php, 3 mail.php.........???
Спасибо!!!
NMitra
Весь вставить на страницу.
Даниил Рощупкин
Добрый день! А можете ещё подсказать как избавиться от сообщения в новой вкладке?
NMitra
Добрый день. Если имеется ввиду форма обратного звонка, то нужно в первом случае ограничится стилями

#popup form {
padding: .5% 1% 1%;
border: 1px solid rgb(100,100,100);
font-size: 140%;
font-weight: 600;
text-align: right;
text-shadow: -1px -1px #666;
color: rgb(240,240,240);
background: rgb(150,150,150) linear-gradient(rgb(100,100,100), rgb(170,170,170));
}
#popup div:nth-of-type(1) {padding-top: 3%;}
#popup div:nth-last-of-type(1) {padding: 1% 0 4%;}
#popup div:after {
content: attr(data-title);
display: block;
font-size: 70%;
font-weight: normal;
text-shadow: none;
}
#popup input {font-size: 90%;}
#popup [type='submit'] {cursor: pointer;}
#popup label:hover {
color: #dbeaf9;
cursor: pointer;
}
dsc
Скажите, как можно перенести ответ: "Ваше сообщение отправлено" под форму и чтобы сама форма не смещалась ни вверх ни вниз. Только надпись появлялась бы снизу. Сверху она мне совсем не нравится) Спасибо.
NMitra
Я это сообщение и сверху то не заметила, а снизу оно совсем невидимым глазу будет.

Попробуйте <? скрипт ?> разместить после <form method="POST" id="feedback-form"> формы </form>

Или можно во всплывающем окне.
dsc
Отлично! Сработало. огромное спасибо вам за эту статью. Я около месяца искал решение этого вопроса и благодаря вам решил!
Теперь мой сайт aligo.com.ua, выглядит достойно!)
NMitra
Владимир, вместо того, чтобы спамить, написали бы честно, что мы сделали такой-то сервис, чем он может быть полезен моим читателям, например, прост в настройке, дублирует сообщения на сотовый телефон и т.п., а так... ваш комментарий, извините, удалила.
Андрей Ерофеев
Ребят. Помогите пожалуйста. Что то не могу понять не отправляет письма и все. Уже 4 формы обратной связи перепробовал. Хостинг 1GB Cms Hostcms. Ящик по рекомендации хостинга создан у них же.
NMitra
Попробуйте с их службой помощи пообщаться, без нужной настроек у хостинга ничего не получится.
NMitra
нужных*
виктор игошин
Не отправляет через скрипт с подгрузкой страницы. Основная страницы html, там идет аякс код подгрузки страницы с сервера. При нажатии отправить, страница просто обновляется. Однако если зайти по прямому пути, все срабатывает. Подскажете?
Сайт: pda.ws58.ru нахождения скрипта: pda.ws58.ru/php/contact.php
NMitra
В action прописываете правильный путь?
PHP поддерживается на странице pda.ws58.ru? Проверить просто: <?php echo date("Y"); ?> (текущий год)
Sergey Milkov
Все прекрасно работает, те кто пишут что не работает - видимо вы плохо разбираетесь в html, php и функции mail.
У меня вот не работает css в долбаном IE
NMitra
Вроде ничего сложного для IE нет. Можно заменить box-shadow на border для верности
Александр
Доброго времени суток.. не подскажете как сделать чтобы текст "Как к Вам обращаться: ,Email для связи: и Ваше сообщение: " были написаны слева.. а то они растянулись по всей форме(( заранее благодарен. вот ссылка http://ru08.e3w.ru/cont.php простите за спам
NMitra
#feedback-form {
text-align: left;
}

В вас в коде есть
body, th, td, input, textarea {
text-align: justify;
}
Поэтому всё и растягивается по ширине.
Александр
Большое спасибо! Все стало так как я хотел
altrimenti
Спасибо, очень простая и эффектная форма
Анонимный
У меня вообще не отправляет. Сотни форм перепробовал.
может в .htaccess что-то нужно прописывать?
Анонимный
У меня вообще не отправляет. Сотни форм перепробовал.
может в .htaccess что-то нужно прописывать?
почтовый ящик Mail.ru
и вообще я не могу понять от кого мне будет приходить письмо? от несуществующего e-mail адреса?
NMitra
Привет. С email хостера.
На html страницах работает php? Вставьте в код <?php echo date("Y"); ?> Должен отображаться текущий год. Если нет, то см. http://shpargalkablog.ru/2013/05/reviews-php.html#c7325007653763434309 Там указаны пару рекомендаций или нужно поинтересоваться у службы поддержки хостера что сделать, чтобы на html страницах работал php
Denis Gordeev
Спасибо за форму, вот только не могу понять как поставить переставить кнопку, что бы была в правом, нижнем углу.
Denis Gordeev
Получилось, просто с начала когда ставил float: right форма разлеталась почему то :(
NMitra
<input type="submit" value="отправить">

замените на

<div><input type="submit" value="отправить"><div>

В стили допишите

#feedback-form div {
text-align: right;
}
NMitra
Не закрыла тег

<div><input type="submit" value="отправить"></div>
Denis Gordeev
Спасибо, а как сделать что бы ответ формы "ваше письмо отправлено всплывал в новом окне или в модальном?
Ivan Alipov
Спасибо огромное.
Не разобрался только как сделать заполнение некоторых полей необязательным!
NMitra
Denis Gordeev,

вместо
echo ('<p style="color: green">Ваше сообщение получено, спасибо!</p>');
напишите
echo ('<p id="popup">Ваше сообщение получено, спасибо!</p>');

Стили можете посмотреть тут http://shpargalkablog.ru/2013/06/popup.html или ждите, на следующей недели постараюсь в комментариях выложить код.

Ivan Alipov, за это отвечает атрибут required в input
Сергей Викторович
Умные люди да расскажите же вы утаиваемый вами секрет как реализовать все это?
- например:

1 создаём файл mail.php или как его надо правильно назвать то (со следующим содержимым ,<.....код.....> )
2 вставляем этот mail.php на хостинге туда то
3 каким ёбразом настроить отправку почты с сервера (хостинга) PHP mail или Sendmail или SMTP
4 создаём страницу сайта с кодом ( <.....код.....> )
5 видим свою форму на сайте, тестируем и ничего не происходит (вырываем волосы и пишем сюда злобное письмо) умникам

P.S. Странно но на эту страницу по навигации сайта не реально попасть!
NMitra
Не могу. На каждом хостинге индивидуальная админка, у каждой CMS своя структура. Смотрите комментарий 21,22 http://shpargalkablog.ru/2013/05/reviews-php.html#c7325007653763434309

3) попробуйте написать службе поддержки хостера

http://shpargalkablog.ru/p/html-css-javascript.html см. раздел PHP, да и с похожих статей можно
http://shpargalkablog.ru/2013/08/bell-site.html или http://shpargalkablog.ru/2014/05/email-file-php.html
NMitra
Вот, например, как решилась похожая проблема http://shpargalkablog.ru/2013/08/bell-site.html#c5279729162631215872 :
"оказалась на хостинге был не включен какой-то опен". Я о работе хостеров и особенностях CMS также плохо осведомлена. (((
Сергей Викторович
Ответьте пожалуйста хотя бы на 1,2,4 вопросы
NMitra
Я на любую страницу вставляю (html или php) и всё работает. Только делать это нужно в режиме html.
NMitra
Код см выше, только при копировании стилей теги не забудьте

<style>
#feedback-form {

_______________________и т.д_____________________

box-shadow: 0 1px 1px #fff, inset 0 1px 2px rgba(0,0,0,.8), inset 0 -1px 0 rgba(0,0,0,.05);
}
</style>
Сергей Викторович
Теперь мучения состоят в том что бы сама форма вызывала какой то функцией событие отправки почты из файла в корне например назовем его mail.php
Суть в том чтоб не светить адрес почты @ на странице обо опыт получения спама присутствует
Что скажете на эту тему?
NMitra
PHP код не видно на HTML, потому что он выполняется на стороне сервера
руслан попков
установил данный скрипт ,работаает,но когда отправляется письмо,страница перезагружается и не понятно отправиось или нет..
Denis Gordeev
Вы обещали стили для всплывающего ответа в модальном окне...
NMitra
Замените

echo ('<p style="color: green">Ваше сообщение получено, спасибо!</p>');

на

echo ('<script>alert("Ваше сообщение получено, спасибо!")</script>');
NMitra
Или на

echo ('<table id="popup"><tr><td><table><tr><td>Ваше сообщение получено, спасибо!<br><button type="button" onclick="document.getElementById(\'popup\').parentNode.removeChild(document.getElementById(\'popup\'));">Закрыть</button></td></tr></table></td></tr></table>');

И добавить какие-нибудь такие стили

#popup {
position: fixed;
top: 0;
left: 0;
z-index: 100;
height: 100%;
width: 100%;
text-align: center;
background: rgba(240,240,240,.9);
}
#popup table {
margin: 0 auto;
border: solid #587DA4;
background: #fff;
}
NMitra
Эм, для второй таблицы тоже центрирование.

#popup table {
text-align: center;
}

Можно что угодно тут придумать: и фон, и значок внимание, и больше текста
руслан попков
прошу обратить внимание на мою проблему.
NMitra
А комментарий 57 не помогает?
Анонимный
как сделать что бы в поле от кого был написал email который был указан в форме
NMitra
Добавьте заголовки (см код для mail)

$headers = "From: " . $from . "\r\n";
$headers .= "Reply-To: " . $from . "\r\n";
Ярослав Калюк
$headers = "From: " . $from . "\r\n";
$headers .= "Reply-To: " . $from . "\r\n";

Покажите, пожалуйста, как добавить, а то приходят кракозябры, но уже с нужным имейлом)
NMitra
if (isset ($_POST['messageFF'])) {
$to = 'свой@mail.ru';
$subject = 'заполнена контактная форма с '.$_SERVER['HTTP_REFERER'];
$subject = "=?utf-8?b?". base64_encode($subject) ."?=";
$message = "Имя: ".$_POST['nameFF']."\nEmail: ".$_POST['contactFF']."\n\n".$_POST['messageFF'];
$headers = 'Content-type: text/plain; charset="utf-8"';
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Date: ". date('D, d M Y h:i:s O') ."\r\n";
$headers .= "From: " . $from . "\r\n";
$headers .= "Reply-To: " . $from . "\r\n";

mail($to, $subject, $message, $headers);
echo ('<p style="color: green">Ваше сообщение получено, спасибо!</p>');
$_POST['nameFF'] = $_POST['contactFF'] = $_POST['messageFF'] = '';
}
Ярослав Калюк
Отлично! Все работает.

Может еще покажете как сделать на ajax, чтобы выводилось сообщение об успешной отправке письма без перезагрузки страницы. Было бы супер мега круто =)
NMitra
Недавно узнала о new XMLHttpRequest(). На следующей неделе подумаю как его приспособить.
Анонимный
Если бы Вы сами написали скрипт личный, я бы понел... т.е. не копировать скрипт...
NMitra
Я не поняла вас, не откуда код ни копировала. У функций скрипта есть стандартный набор параметров, как ни крути, а ничего нового особо не придумаешь.
Ярослав Калюк
Не обращайте внимание, на всяких там анонимов))

Очень жду функцию отправки письма без перезагрузки страницы)
Анонимный
Не хватает 3-ех элементов... к полям... экстранировать их для безопасности... от выполнение кодов... например в поле пишится любой код вредоносный... а этого допускать нельзя этого... ну ты понела... например я смотрю код, и мне честно плохо читается код... как говорится не читабельным... когда ты принела переменые нужно их экстранировать их... чтоб злоумышлиник не смог передать код... это JavaScript
Анонимный
Irbis любите... если будет у Вас время загляните на мой сайт... щас пишу движок к сайту... скоро будет доступным людям... скрипты будут ихбудет много... правда с СУБД ... буду рад Вас увидить ... а то что пред последний коммент что написал, это не правдо... я увидел что статья взята из IRBIS... то что написал пред это я даю рекомендацию по коду... извини, плохой тон программирования...)))
NMitra
Приведите пример, пожалуйста. По Яндексу/Гугл ничего не нашла по запросу "экстранировать javascript php".

У Irbis понравилась именно вышеданная статья, остальные, увы, не читала. Код не копировала, изучала одновременно несколько источников, но посчитала нужным указать именно эту ссылку, поскольку она может быть полезной для читателей.
Анонимный
Здравствуйте! После нажатия "отправит" пишет:The requested method POST is not allowed for the URL /abroad.html. возможно решить эту проблему?
Спасибо за внимание!
NMitra
Здравствуйте, проверяйте свои настройки, почему для страницы /abroad.html нельзя применить метод POST.
Анонимный
Сайт находится на бесплатном хостинге Webservis.ru. Я самоучка- дилетант. Какие настройки?
NMitra
:)) Спросите у хостера. Запреты могут быть прописаны в PHP или .htaccess
Анонимный
Автору респект, все работает, спасибо огромное за полезную инфу!!!
Анонимный
А как сделать что бы если форма была принята то человека отправляли бы на другую страницу (страницу благодарности), а если не была принята - то об этом было бы написано в самой форме?
NMitra
Ярослав Калюк, статью подправила.
NMitra
Анонимный,

http.onreadystatechange = function() {
if (http.readyState == 4 && http.status == 200) {
window.location.replace('http://shpargalkablog.ru/2014/01/feedback-form.html');
}
}
Анонимный
Сразу прошу прощения что нахозяйничал в коде, но нужно было только два поля (имя и телефон) и немного другую кнопку. С дизайном все получилось, но сообщения не приходят ни на hotmail, ни на gmail, хотя пишет что информация отправлена. Может быть я перехозяйничал редактируя, но вроде старался аккуратно. Можно как-нибудь переслать код? Здесь вроде на код ругаются.
NMitra
Посмотрите, возможно этот вариант подойдёт больше http://shpargalkablog.ru/2013/08/bell-site.html

Чтобы код писать в комментарии http://shpargalkablog.ru/2010/12/napisat-kod-tekstom.html
Игорь
Отличная форма, подскажите пожалуйста, как сделать , чтобы форма обнулялась после отправки?
NMitra
Вместо


http.onerror = function() {
alert('Извините, данные не были переданы');
}
return false;
}
</script>


напишите


http.onerror = function() {
alert('Извините, данные не были переданы');
}
this.nameFF.value = "";
this.contactFF.value = "";
this.messageFF.value = "";
return false;
}
</script>
Анонимный
Здравствуйте!
А подскажите, как сделать проверку на заполненность поля имени, к примеру.
Спасибо!
NMitra
Здравствуйте, что в имени хотите проверять? Чтобы в нём не использовались цифры? Проверка делается или на php, или с помощью атрибута pattern (менее сильная защита).
Анонимный
Суть вопроса в том, что данную форму можно отправить пустой, просто нажав на отправить. Можно еще использовать псевдокласс required. Спасибо.
Анонимный
Добрый день, отличная форма, работает. Спасибо. У меня проблема с размером шрифта в полях имя и адрес почты. Что бы буквы нормально отображались приходится масштабировать страницу до 250%. http://arhveterinar.ru/poluchit-konsultaciju/ А можно как нибудь сделать фиксированный размер текста в форме?
NMitra
Добрый день, добавьте

#feedback-form [required] {
height: auto;
font-size: inherit;
}

У вас в http://arhveterinar.ru/amiro_sys_css.php?styles=common|ami_custom|home&_сv=6.0.6.1&less_mode=none&_sv=0121-12112209 стили:

input { font-size:0.8em; border: #ffa052; height: 17px;}
Анонимный
NMitra, премного благодарен.
Сергей sj4000ЭкшнКамера
отлично заработало всё! Супер - просто, конечно! Ещё бы от спамеров добавить в скриптах капчу или проверка телефона на цифры (сам не умею ещё таких вещей делать). Можете полюбоваться вашей формой на моём первом сайте: http://sj4000.net.ua/
Ещё пару доработок и всё - пишите чего не так у меня и что добавить можно!
NMitra
Капча на коммерческих сайтах будет уменьшать количество посетителей, заполнивших форму. Делайте фильтр по IP спамеров, на первое время этого достаточно. Строку

"Имя: ".$_POST['nameFF']."\nEmail: ".$_POST['contactFF']."\nСообщение: ".$_POST['messageFF']);

замените на

"Имя: ".$_POST['nameFF']."\nEmail: ".$_POST['contactFF']."\nСообщение: ".$_POST['messageFF']."\nIP:".$_SERVER['REMOTE_ADDR']);

Строку

if (array_key_exists('messageFF', $_POST)) {

заменить на

if (array_key_exists('messageFF', $_POST) && (strpos($_SERVER['REMOTE_ADDR'], 'здесь IP спамера') === false)) {

Код приблизительно такой, работоспособность не проверяла
xxgxx
Все работает, огромное спасибо!! Подскажите как добавить еще пункты, и что бы email не обязательно вводить?
NMitra
Уберите required
То есть вместо
input type="email" name="contactFF" required placeholder="адрес электронной почты" x-autocompletetype="email"
нужно
input type="email" name="contactFF" placeholder="адрес электронной почты" x-autocompletetype="email"

Есть похожий комментарий 16, но это для простейшей формы связи. Каждое поле input имеет свой name, например, name="contactFF". Посмотрите где в скрипте он встречается и как соединяется (в теге script плюсом, в php точкой) и сделайте наподобие.
карона
Добавил вашу форму в текстовый виджет своего блога на вордпресс .Contacts.php добавил в корень сайта После нажатия кнопки отправить ничего не происходит. Подскажите в чем дело?
NMitra
Карона, мне не известна админка WP, об этом я писала здесь http://shpargalkablog.ru/p/comments-blog.html
Анонимный
А я делаю формы через специализированный сервис - FormDesigner.ru. Отличный конструктор форм, рекомендую. Может кому-то еще пригодится.
NMitra
Плохо, что данные формы хранятся на стороннем сервисе.
Анонимный
Я по этому поводу не переживаю, сервис довольно стабильный, плюс код формы асинхронный, что не влияет на загрузку страницы. За все время использования у меня проблем не возникало. А при необходимости все данные можно экспортировать в Excel для дальнейшего анализа.
Анонимный
NMitra, подскажите что нужно добавить в файл contacts.php, чтобы отправитель получал сообщение на свой email "Ваще сообщение получено"?
NMitra
Попробуйте так:

mail ($_POST['contactFF'], "тема письма", "Ваше сообщение получено");
Anton Mao
Откуда берется всплывающие сообщение - "Заполните поле"? Как его изменить?
Анонимный
NMitra, спасибо. Сработало.


Попробуйте так:

mail ($_POST['contactFF'], "тема письма", "Ваше сообщение получено");
NMitra
Анонимный, хорошо

Anton Mao, его формирует сам браузер, как и в случае с атрибутом title, изменить нельзя, можно только убрать, если удалить атрибут required из input
Иван К.
спасибо за удобную форму!
Подскажите, как сделать. Хочу:
1. ввести ограничение на минимальное количество символов в поле nameFF;
2. чтобы электронный адрес указывался строго по маске name@example.com.
NMitra
1) см. maxlength
<input type="text" name="nameFF" required placeholder="фамилия имя отчество" x-autocompletetype="name" maxlength="10">

2) посмотрите регулярное выражение для pattern в Яндексе или Google по запросу "pattern email html5". Хотя лучше всё же также в php закладывать подобные условия
Иван К.
Спасибо за ответ!
Для минимального количеcтва использовал pattern=".{3,}". А для верификации e-mail пока использовал pattern, хоть и длиннющий, зараза...
salty673
подскажите- а почему ip адрес отправителя определяется некорректно?
NMitra
Ответ на ваш вопрос мне, к сожалению, не известен.
Ольга Бударина
Спасибо за форму! Всё работает, но только если на странице одна форма. Если размещаю две, то при заполнении второй и нажатии "Отправить", страница просто обновляется без отправки данных. Первую форму при этом не трогаю, сразу заполняю вторую. Напишите, пожалуйста, как решить эту проблему?
NMitra
В стилях селектор
#feedback-form
замените на
.feedback-form

В HTML вместо идентификатора
<form method="POST" id="feedback-form">
используйте классы
<form method="POST" class="feedback-form">

В JavaScript участок

document.getElementById('feedback-form').onsubmit = function(){
// код
return false;
}

замените на

(function() {
var form = document.querySelectorAll('.feedback-form');
for (var i = 0; i < form.length; i++) {


form[i].onsubmit = function(){
// код
return false;
}
}
})();
Анонимный
здравствуйте!
у меня в браузере сначала отображается такое:
#feedback-form [required] { max-width: 400px; padding: 2%; border-radius: 3px; background: #f1f1f1; } #feedback-form [required] { width: 100%; box-sizing: border-box; margin: 2px 0 2% 0; padding: 2%; border: 1px solid rgba(0,0,0,.1); border-radius: 3px; box-shadow: 0 1px 2px -1px rgba(0,0,0,.2) inset, 0 0 transparent; } #feedback-form [required]:hover { border-color: #7eb4ea; box-shadow: 0 1px 2px -1px rgba(0,0,0,.2) inset, 0 0 transparent; } #feedback-form [required]:focus { outline: none; border-color: #7eb4ea; box-shadow: 0 1px 2px -1px rgba(0,0,0,.2) inset, 0 0 4px rgba(35,146,243,.5); transition: .2s linear; } #feedback-form [type="submit"] { padding: 2%; border: none; border-radius: 3px; box-shadow: 0 0 0 1px rgba(0,0,0,.2) inset; background: #669acc; color: #fff; } #feedback-form [type="submit"]:hover { background: #5c90c2; } #feedback-form [type="submit"]:focus { box-shadow: 0 1px 1px #fff, inset 0 1px 2px rgba(0,0,0,.8), inset 0 -1px 0 rgba(0,0,0,.05); }

а потом уже отображается сама форма
Как к Вам обращаться: Email для связи: Ваше сообщение:

как сделать, чтобы отображалась только сама форма, без куска кода?
NMitra
Здравствуйте, этот кусок кода поместите в файл CSS или между тегами <style>

<style> кусок кода </style>
Анонимный
Здравствуйте!
Спасибо за помощь! Код вставил в нужное место и все прекрасно заработало.
Есть ли в коллекции Автора такой скрипт, чтобы нажимаешь кнопку "Оставить сообщение" и всплыла формочка с "ФИО" и "№ телефона"?
т.е. чтоб форма обратной связи не висела постоянно, а вызывалась кнопкой...
Спасибо!
NMitra
Здравствуйте, см. http://shpargalkablog.ru/2013/08/bell-site.html
Анонимный
Здравствуйте!
По образцу кода не получается сделать форму из 3 "этажей" - все ячейки ввода идут в одной строке.....а не одна под другой.. как быть? Плиз!
NMitra
Здравствуйте, сбросьте код (что у вас получилось) в http://jsfiddle.net/ и дайте ссылку в комментариях
Наталья
Подскажите, что сделать если при отправке письма пишут, что все работает и сообщение отправлено. а по сути ничего не приходит. пробовала ящики менять, но результат один. или все из-за того, что запускаю не в интернете,а на localhost а при загрузке формы на сайт все будет работать
NMitra
Фактически письма отправляет хостинг сайта, так что вы верно подметили, код не будет работать на localhost
Андрей
Можно ли сделать чтоб после нажатия на отправить страница перезагружалась, а то после отправки и сообщения что отправлено все поля заполнены
Андрей
Добавил новое поле и в имейле не отображается информация

input type="text" name="telFF" required placeholder="телефон" x-autocompletetype="tel"

"Имя: ".$_POST['nameFF']."\nEmail: ".$_POST['contactFF']."\nТелефон: ".$_POST['telFF']."\nСообщение: ".$_POST['messageFF']);
Анонимный
спасибо. моментально все письма приходят, автору респект.
перерыла несколько скриптов, этот самый нормальный
Анонимный
Как сделать перевод текста ошибки?
NMitra
Комментарий 122: можно очищать поля формы, например, после

alert(http.responseText + ', Ваше сообщение получено.\nНаши специалисты ответят Вам в течении 2-х дней.\nБлагодарим за интерес к нашей фирме!');

добавить

this.nameFF.value = this.contactFF.value = this.messageFF.value = '';
NMitra
this.nameFF.removeAttribute('value'); this.contactFF.removeAttribute('value'); this.messageFF.removeAttribute('value');
NMitra
Комментарий 132: в JS тоже нужно

http.send("nameFF=" + this.nameFF.value + "&contactFF=" + this.contactFF.value + "&telFF=" + this.telFF.value + "&messageFF=" + this.messageFF.value);
NMitra
Комментарий 125: ошибки показаны на основе настроек браузера (для разных пользователей на разных языках). Попробуйте атрибут lang="ru".
Штиф Васлер
А куда же коды разместить, не совсем понятно. Куда поставить php скрипт, javascript, в шапку, или под форму? Тут бы поподробнее.
NMitra
php в отдельный файл, куда - неважно, если дадите полный адрес http://site.ru/papka/contacts.php

http.open("POST", "http://site.ru/papka/contacts.php", true);

javascript тут стандартно, но быстрее страница будет загружаться, если поместить перед </body>
Штиф Васлер
Почему то никак не хочет работать..
Штиф Васлер
Коды такие http://www.cssdesk.com/WYS4g
php файл в корне сайта. Что не так?
NMitra
Хостинг может не предоставлять доступ к функции mail()
Штиф Васлер
Но с CMS то сообщения отправляются. Или это разные вещи?
Анонимный
Здравствуйте, у меня 2 вопроса.

1-ый это кодировка. На почту приходят вместо русского языка каракули. Пытался изменить кодировку как выше сказано, но сообщения после этого вообще не приходили.

2-ой это с добавлением своего поля. Я все сделал как в комментарии 17 и частично работает. В письме появилась строчка "Возраст:" и после неё в этой строчке ничего нет.
NMitra
Штиф Васлер, они могут выключить только одну функцию mail() PHP


Анонимный,
1) служба mail.ru? В статье даны два примера. Вы использовали первый пример с JS, а кодировку взяли из примера два без изменений?
2) пару первых комментариев убрала, нумерация съехала :( См. комментарии 122 и 127

Изначально была описана только "Простейшая форма связи", но так как возникали постоянные проблемы с подключением PHP на HTML страницах, PHP был выведен в отдельный файл и доступ к нему идёт через JS (чтобы страница не перезагружалась). Поэтому первые наверно 100 комментариев посвящены второй форме связи, которую я оставила как альтернативную.
Антон Танский
Все равно не приходит смс на почту (специально зарегал яндекс)..... Знаю что разбирали вопрос этот, но все равно подскажите что я не так делаю??
Сева
Спасибо, отличная форма, но можно чтоб после подтверждения отправки, форма очищалась. а то данные висят и ждут ресета страницы.
Александр
Все установил как написано, но письма не приходят, подскажите что не так сделал? http://трубочист78.рф/контакты
NMitra
Сева, посмотрите комментарий 125 При появлении свободной минутки, внесу изменение в статью

Антон и Александр, я, к сожалению, не могу заглянуть в ваш код и посмотреть что не так, поскольку он обрабатывается на стороне сервера. На Яндекс почте все должно быть в порядке. Вероятные причины ошибки: почта фильтрует письма от хостинга так, что те даже в спам не падают; хостинг не предоставляет услугу по доступу к функции PHP mail(); не верно указан путь к файлу contacts.php. На этой неделе постараюсь дать простейший код для теста.
NMitra
Статью доработала
Анонимный
Всё сделал как написано, но письма приходят раз через раз.

Например:

Заполнил форму, нажал отправить и письмо пришло.

Потом не перезагружая страницу сразу опять новое напечатал и нажал отправить но письмо НЕ приходит новое!! И так может несколько раз то приходить то нет, а в БОЛЬШИНСТВЕ случаев НЕ приходит.

Почта ....@ya.ru

А вот когда делаю тест при помощи test.php, письмо сразу приходит!!!

Помогите, уже замучился, что не так?
Анонимный
И ещё, у меня несколько страниц html и в каждой странице я прописал стиль и форму отправки, а contacts.php один
и с одной страницы всё отправляется, а с остальных нет, хотя код копи\паст c той страницы откуда отправляется... в чём дело, почему с одной страницы отправляется. а с остальных нет?
NMitra
Комментарий 142: onsubmit в статье заменила на addEventListener()
Комментарий 143: замените contacts.php на полный адрес файла

Можете попробовать использовать "простейшую форму", если есть поддержка PHP на HTML страницах, она не хуже
Антон Павлов
Спасибо автору!
Сварганил из этой формы модуль под CMS.
Остался вопрос - как добавить сюда код цели Яндекс-метрики?
Пробовал так:
..... method="POST" onsubmit="yaCounter...........reachGoal('goform'); return true;" id="feedback-form"....
сообщение уходит, цель не фиксируется :-(
Как быть?
NMitra
Попробуйте после строки

document.getElementById('feedback-form').addEventListener('submit', function(evt){
yaCounter...........reachGoal('goform');
Антон Павлов
Так форма перестает работать, по клику на кнопку - белый лист и содержимое поля Имя в первой строке
Антон Павлов
Извините, ввел в заблуждение: форма срабатывает, письмо приходит, но цель по-прежнему не фиксируется, а вместо сообщения - белый лист.
NMitra
У меня цели в Метрике на событие вообще настроить не удаётся :( Если будет время и докопаюсь до чего-нибудь путного, отпишусь
Pasha Pasha


Лариса Волынкина
Добрый день. Пробую применить Вашу форму обратной связи. Сначала очень долго не могла разобраться с кодировкой. Создала новый файл в файловом менеджере на хостинге, все работает, но вместо русских букв абракадабра. Помогло только создать новый текстовый файл, скопировать код туда, сохранить в кодировке utf 8,и залить на хостинг вместо того что было. Получается на хостинге изначально создается файл не в той кодировке?
Теперь отображается русский почти везде. Но при отправке сообщения, в окошке где написано Ваше сообщение отправлено, перед этой фразой, там где видимо должно отобразиться имя отправителя - опять абракадабра. Подскажите как исправить, пожалуйста
NMitra
Добрый день, мета тег в HTML должен устранять проблему

<meta charset='utf-8'/>

В примере записан как

<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>

Он не работает?
Анонимный
Возникает такая ошибка:
POST https://interc.info/contacts.php 404 (Not Found)(anonymous function) @ freedback.js:7
Указывает на 7 строку файла:
http.send("nameFF=" + f.nameFF.value + "&contactFF=" + f.contactFF.value + "&messageFF=" + f.messageFF.value);
Олег Аксенов
Возникает следующая ошибка:
POST http://site.ru/contacts.php 404 (Not Found)(anonymous function) @ freedback.js:7
В файле проблемы с этой строкой:
http.send("nameFF=" + f.nameFF.value + "&contactFF=" + f.contactFF.value + "&messageFF=" + f.messageFF.value);
Олег Аксенов
Проблема решена.
NMitra
Олег, расскажите, пожалуйста, как решили.
Татьяна
Добрый день! Хочу форму, как у вас, но только чтобы она появлялась во всплывающем окне по вызову кнопкой. Не подскажете как это можно сделать?
Олег Аксенов
NMitra, Поставил на wordpress, все работает нормально, однако придется самому переписать, чтобы была авторизация через smtp, т.к. без этой процедуры попадает в спам(или придется разрешить спам, что не является вариантом). Ничего не происходило у людей(видел комментарии), потому что вызов contacts.php происходит из корня /var/www/, а не корня сайта.
По ошибке было понятно, что не мог вызвать этот самый contacts.php и собственно я просто поправил пути :)
Олег Аксенов
Дополню, что работает на mail,yandex,gmail и на собственном домене, он просто летит в спам из-за не доверенного адресата.
NMitra
Татьяна, посмотрите, здесь что-то похожее http://shpargalkablog.ru/2013/08/bell-site.html

Олег, из спама можно вытягивать по заголовку письма, например. Посмотрите тут скриншот в конце статьи http://shpargalkablog.ru/2014/05/feedback-form-file.html
Анонимный
Извините но какая то каша из кода совершенно не читаемо
NMitra
Да, есть такое, копируйте, пожалуйста, из Mozilla Firefox
Владимир Кулаксизов
Форма с прикреплением файлов к письму: http://kylaksizov.ru/files/scripts_modules_plagins/82-forma-otpravki-pisma-s-vlozheniem-php-skachat.html
Borsh4
Спасибо парень, помог
Анонимный
подскажите, пожлста, как исключить повторную отправку письма при нажатии на F5?
форма то, что нужно - спасибо вам за нее!
NMitra
Используйте первый вариант с new XMLHttpRequest() Я проверяла, форма повторно не отправляется. Может что поменялось? Какой у вас браузер?
Анонимный
я ошибся веткой, писал про форму с отправкой файла - http://shpargalkablog.ru/2014/05/feedback-form-file.html
вопрос тем не менее насущный и актуальный.
и еще - как и где можно управлять полями обязательными для заполнения? например интерсно сделать поле телефон заполняемое по типу 9-999-99-99 (например как емаил - x@x)
NMitra
Бесполезно это, сейчас большинство с мобильников звонят
<input type="tel" pattern="\d-\d\d\d-\d\d-\d\d" placeholder="#-###-##-##"/>

Я хотела на той странице вариант с FormData дать (см. https://developer.mozilla.org/ru/docs/Web/API/FormData) Но там поддержка с IE10. Я её ещё не проверила на работоспособность, но выглядит очень привлекательно
Анонимный
вариант с FormData - а как им пользоваться?
я правильно понял, что это поможет избежать повторной отправки при обновлении страницы?
NMitra
Я начала править статью, можете посмотреть.
Анонимный
Есть решение проблемы с кодировкой для тех у кого сайт написан на windows-1251. Что б вместо кракозябриков на мыло приходили нормальные буквы кириллицы достаточно прописать функции конвертации для каждой переменной в php файлике (если поддерживает сервер):

if (array_key_exists('messageFF', $_POST)) {
$name = iconv("utf-8", "windows-1251", $_POST['nameFF']);
$email = iconv("utf-8", "windows-1251", $_POST['contactF']);
$message = iconv("utf-8", "windows-1251", $_POST['messageFF']);
mail ("вашапочта@mail.com",
"заполнена контактная форма с ".$_SERVER['HTTP_REFERER'],
"Имя: ".$name."\nEmail: ".$email."\nСообщение: ".$message, "Content-type: text/html; charset=windows-1251 \r\n");
echo $name;
}
NMitra
Благодарю за дополнение! Я как-то не сталкивалась с windows-1251.
Анонимный
Добрый день!
Заранее прошу сильно не пинать ногами, ибо не силен в скриптах) почтовая форма у меня выводится в popup-окошке, скрипт приведен ниже. Как сделать закрытие окна с почтовой формой по кнопке "Отправить", соответственно при корректно заполненных полях?

Оставить заявку

$(document).ready(function(){
$('.popup .close_window, .overlay').click(function (){
$('.popup, .overlay').css('opacity','0');
$('.popup, .overlay').css('visibility','hidden');
});
$('a.open_window').click(function (e){
$('.popup, .overlay').css('opacity','1');
$('.popup, .overlay').css('visibility','visible');
e.preventDefault();
});
});
NMitra
Добрый день! Я не разбираюсь в jQuery (не смогу пример вам написать). В JS нужно дать имя функции и при событии submit выполнить её. Вам нужно сделать тоже самое, но используя свой синтаксис.
Анонимный
Умом понимаю, сделать не могу) может кто-то подскажет, подожду. В любом случае спасибо! Хорошая почтовая форма!
Анонимный
Не могу добавить новую строчку, добавил в JS все выше написаное, но ничего не работает. На мыло приходят стандартные 3 строки.
NMitra
Что важно:
1) name у тега, скажем, input
2) в JS в send передаётся ключ-значение. Чтобы не путаться используем то же название ключа, что name.
3) в PHP передаём значение ключа $_POST[] в email и для удобства расшифровки его как-то называем, например, 'телефон: '
Лариса Волынкина
Добрый день. У меня код если вставлять все в html не работает. Вставляю первую часть в php, вторую в html. Работает отправка отзыва, но потом белый экран, и на страницу ничего не добавляется.
Не срабатывает вот эта часть:
dl


При добавлении ее в конце в html появляется ошибка, что мол неожидаемый символ. Подскажите в чем может быть дело. Куда и как правильнее добавить эту строчку?
NMitra
Добрый день, преобразуйте, пожалуйста, код через http://shpargalkablog.ru/2010/12/napisat-kod-tekstom.html
Анонимный
Добрый день, подскажите пожалуйста, когда я получаю письма в поле от кого отображается адрес моей электронной почты, который зарегистрирован на сервере, и только в письме указывается адрес реального отправителя, как это можно исправить? Спасибо.
NMitra
Добрый день, добавите в PHP

$headers .= "From: " . $_POST['contactFF'] . "\r\n";
$headers .= "Reply-To: " . $_POST['contactFF'] . "\r\n";

Но большинство почтовых серверов режет такие письма, даже в спам не бросают их. Так как фактически это хостинг шлёт письма.
Анонимный
НАКОНЕЦТО! работает! спасибо огромное, так же само вставляла только без точек перед равно , не работало.
Анонимный
Добрый день, подскажите пожалуйста, мне нужно чтобы вместо:

alert(http.responseText + ', Ваше сообщение получено.\nНаши специалисты ответят Вам в течении 2-х дней.\nБлагодарим за интерес к нашей фирме!');

после отправки сообщения пользователю показывалась:


мою страничку thankyou.html во фрейме
NMitra
Добрый день. Вместо

alert(http.responseText + ', Ваше сообщение получено.\nНаши специалисты ответят Вам в течении 2-х дней.\nБлагодарим за интерес к нашей фирме!');

напишите что-то типа

document.getElementById('raz').innerHTML = "ваш HTML";

Предварительно добавьте до или после формы
<div id="raz"></div>

Мне кажется может пригодится эта страница http://shpargalkablog.ru/2013/04/value-input-javascript.html
Анонимный
Так выводит просто текст "ваш HTML"
NMitra
Вместо "ваш HTML" что-то своё напишите, iframe, например
NMitra
Возможно вам пригодится http://shpargalkablog.ru/2014/10/window-open-javascript.html#popup То есть из окна можно менять содержимое фрейма и наоборот
Анонимный
Здравствуйте! Помогите, пожалуйста, форма не работает! Установил код в css, и в html сценарий РНР вариант без JS
Сообщение не отправляет, (в почтовый ящик не приходит) а после отправки показывает на сайте "Ваше сообщение получено". Сейчас я временно изменил выводимое сообщение на "Извините, Ваше сообщение не отправлено по техническим причинам. Создал файл test.php. Он также не приходит на ящик. Хостинг бесплатный, на мои тикеты не отвечает. Сайт pamyaty.v2hd.com
NMitra
Здравствуйте, извините, помимо того, что уже написано в статье и комментариях, мне нечего добавить :( Чаще всего комментаторы сами решают подобные вопросы, а в комментариях пишут как удалось сделать так, чтобы работало или почему не работает.

PHP это не JS, CSS, HTML - я не могу заглянуть в исходный код и посмотреть в чем проблема.
Штиф Васлер
Никак не получается вставить свои поля и убрать ненужные. Нужно добавить еще одно поле для города и телефон, а текстовое убрать. Но почему то после моих манипуляций сообщение хоть и говорит что отправлено, но по факту не приходит :\\\
Штиф Васлер
и почему, если две формы установлены на странице, со второй сообщения не отправляются? как установить несколько на одной странице?
Штиф Васлер
Ну подскажите же мне, как оставить только свои поля?? Если удаляю ненужные из кода и скрипта и пхп, сообщения не отправляются!
NMitra
Ответ на вопрос тут: http://css.shpargalkablog.ru/2015/12/httpshpargalkablogru201401feedback.html (такой огромный кусок текста в комментариях писать не стала, вынесла на отдельную страницу)
NMitra
В том примере поле "Сообщение" заменено на поле "Телефон". Форма дополнена полем "Город". Плюс можно добавлять несколько форм (то, что между <form method="POST" class="feedback-form"> ... </form> включительно). CSS и JavaScript достаточно в одном экземпляре.
Unknown
товарищи!с локального сервера есть варик на электронную почту письмо отправить?
NMitra
Мне такой вариант не известен
Анонимный
понял.спасибо ;)
Alex
Огромное спасибо )) Разобрался со всем ))) Мой сайт http://eco-house.kiev.ua/
Unknown
Окошко "ваше сообщение получено" открывается через 5 секунд после нажатия отправить. Как уменьшить это время?
NMitra
Окошко появляется после того, как PHP даёт ответ "всё хорошо". Можно просто выводить окошко вне зависимости от результата, просто при нажатии кнопки, но зачем? А если скрипт не пройдёт?
«Самые старые ‹Старые   1 – 200 из 205   Новые› Самые новые»