При использовании сайта на cms WordPress совместно с плагином Contact Form 7, случается так, что у некоторых посетителей не отправляются веб-формы, созданные плагином. Текст ошибки выглядит так: «При отправке сообщения произошла ошибка. Пожалуйста, попробуйте ещё раз позже.»
Обычно такая ошибка возникает когда указан неверный исходящий адрес, либо плагин или скрипт вмешивается в работу плагина веб-форм. Первое, что необходимо проверить для решения проблемы, это адрес исходящий почты в настройках проблемной формы:
Адрес должен соответствовать домену сайта. Например, если у вас домен website.ru, то в поле «От кого» должен стоять ящик этого домена, например mail@website.ru. При этом исходящий адрес может даже не существовать, поэтому можете указать абсолютно любую почту, главное — чтобы она соответствовала домену сайта.
Если способ не помог, то проверьте настроен ли сервис Recaptcha. Для этого зайдите в админке по пути: Contact Form 7> Интеграция.
Если в блоке «ReCaptcha» написано «reCAPTCHA активна на этом сайте.», то нужно отключить привязку ключей. Для этого нажмите на кнопку «Настройка интеграции», а затем «Удаление ключей».
ReCaptcha — это сервис Google, который на основе своих алгоритмов определяет человек вы или бот. Иногда сервис ошибается и не дает отправлять формы на сайте. После удаления ключей ваш сайт не буден защищен от спама, но вы можете установить плагин «ReCaptcha v2 for Contact Form 7», где не будет проблемы с определением пользователей.
Что делать если способы не помогли?
В таком случае последовательность действий такая:
- Нужно отключить все плагины, кроме Contact Form 7, затем проверить работу форм. Если проблема решилась, то методом исключения включаете каждый плагин по отдельности и находите конфликтный.
- Если не помогло, то открываем файлы шаблона header.php и footer.php и удаляем подключение сторонних скриптов. Проверяем работу форм. Также, если формы заработали, применяете метод исключения.
Вышеописанные способы в 99% случаев должны помочь решить проблему. Если у вас осталась ошибка, то прошу связаться с нами любым доступным способом, указанным ниже, либо на странице контакты
Ошибки в формах
приема данных
Ошибки в формах
приема данных
Ошибки в формах могут появляться из-за неверно настроенной интеграции со сторонним сервисом. В этой статье описаны наиболее частые ошибки и пути их решения.
После подключения сервиса приема данных в настройках сайта отметьте его галочкой в меню «Контент» блока с формой и обязательно переопубликуйте страницу с формой.
Заявки не приходят в сервис приема данных
Если на опубликованной странице в форме не отображается ошибка, а заявки все равно не приходят, то нужно проверить логи сервиса приема данных.
Перейдите в личный кабинет Тильды → откройте раздел «Заявки» → посмотрите наличие ошибок в «Журнале ошибок».
Перейдите в раздел «Заявки»
Также открыть список последних ошибок можно при помощи бокового виджета. Для этого нажмите на иконку восклицательного знака.
Ниже мы выделили популярные ошибки сервисов приема данных, платежных систем и сервисов доставки, описали причины возникновения и способы их устранения.
Примите во внимание, что мы не осуществляем поддержку по вопросам связанным с работой вашего кода.
Ошибки при заполнении формы на сайте
Такие ошибки отображаются при попытке отправки данных в форме и видны всем пользователям.
Ошибка «Отправка данных невозможна»
Необходимо перейти в «Настройки сайта» → «Формы» → в самом низу «Общие настройки форм» → нажать «Настроить» → «Сохранить» → переопубликовать страницу с формой, перейти на опубликованную страницу, обновить её 2-3 раза и попробовать оставить заявку ещё раз.
Ошибка «[456] {«needcaptcha»:1}. Please, try again later.»
Ошибка появляется для определенного пользователя, при попытке заполнить форму несколько раз подряд за короткий период времени, без прохождения теста «Я не робот». Обычно в таком случае пользователь блокируется по IP на сутки. Необходимо проверить отправку формы в режиме «Инкогнито» или через VPN.
Если в вашем проекте возникла иная ошибка при получении данных с форм, обратитесь в службу поддержки в личном кабинете. Специалисты помогут разобраться.
maks_7 4 / 4 / 3 Регистрация: 14.10.2014 Сообщений: 321 |
||||||||
1 |
||||||||
Не работает отправка формы09.05.2016, 14:09. Показов 3799. Ответов 8 Метки нет (Все метки)
С праздником, уважаемые форумчане! Вот форма:
И вот файл отправки формы:
Может это таблица мешает или то,что сайт на бутстрапе? Спасибо зарание.
0 |
Пифагор 2169 / 1652 / 840 Регистрация: 10.01.2015 Сообщений: 5,184 |
||||||||||||
09.05.2016, 14:15 |
2 |
|||||||||||
помимо всего должно быть имя, которое потом передается при условии нажатия.
Добавлено через 1 минуту
1 |
Kerry_Jr 3105 / 2590 / 1219 Регистрация: 14.05.2014 Сообщений: 7,236 Записей в блоге: 1 |
||||
09.05.2016, 14:47 |
3 |
|||
помимо всего должно быть имя, которое потом передается при условии нажатия.
Не понимаю, для чего проверять, нажата кнопка или нет.
0 |
2169 / 1652 / 840 Регистрация: 10.01.2015 Сообщений: 5,184 |
|
09.05.2016, 14:51 |
4 |
Не понимаю, для чего проверять, нажата кнопка или нет. А если кнопок несколько?
0 |
4 / 4 / 3 Регистрация: 14.10.2014 Сообщений: 321 |
|
09.05.2016, 14:57 [ТС] |
5 |
Спасибо, помогло! Теперь возникла следующая проблема. Когда должна открываться страница, где сообщается, что письмо успешно отправлено, вместо этого какие-то кракозябры и на почту тоже кракозябры приходят. Страница index.html сохранена в utf-8 и в php файле есть строчка
0 |
maruo 133 / 133 / 48 Регистрация: 26.04.2013 Сообщений: 1,356 |
||||||||
09.05.2016, 15:03 |
6 |
|||||||
Пифагор, Так можно проверить на параметры которые есть , и должны приниматься Добавлено через 1 минуту
Если информация выбирается из Базы данных, то в соединении указываете кодировку.
1 |
3105 / 2590 / 1219 Регистрация: 14.05.2014 Сообщений: 7,236 Записей в блоге: 1 |
|
09.05.2016, 15:03 |
7 |
А если кнопок несколько? Тогда этот вопрос не возник бы
0 |
maruo 133 / 133 / 48 Регистрация: 26.04.2013 Сообщений: 1,356 |
||||
09.05.2016, 15:11 |
8 |
|||
maks_7, Насчет кодировки на почте, нужно отправить заголовок
1 |
4 / 4 / 3 Регистрация: 14.10.2014 Сообщений: 321 |
|
09.05.2016, 15:17 [ТС] |
9 |
Спасибо, все отлично работает!
0 |
Дело в том, что вы не вызываете свой PHP-скрипт.
Да, он у вас прописан в атрибуте action
формы, но ни одна из кнопок на самом деле не отправляет форму. Каждая из ваших кнопок выполняет перенаправление, которое вы задаёте в JS-функции, а собственно отправки формы не происходит, ибо
event.preventDefault();
То есть буквально: «Предупредить выполнение события по умолчанию».
У вас есть выбор: заменить кнопки, например, на радиокнопки, а по отправке формы сначала писать в БД, а потом обычным PHP’шным header("location: ...")
перенаправить туда, куда вам нужно (так бы делал я); или же оставить всё как есть, но в JS-функции ещё AJAX’ом дёрнуть ваш PHP-скрипт (считаю это решение переусложнённым).
Если что-то непонятно, спрашивайте в комментариях, обновлю ответ.
UPDATE: Примерное решение на радиокнопках
Код примерный, сразу говорю (бэкенд особо не проверял — накидал примерно, ибо я бы делал на PDO). Там есть мои комментарии, они в квадратных скобках и с пометкой A. P.. Да, и ещё я несколько улучшил код, если что-то непонятно, снова пишите в комментарии.
HTML
<form action="post.php" method="POST" class="form">
<div class="input-wrap">
<label for="num" class="phone-on-form" >Номер<br> телефона</label>
<!-- [Тип для телефонов — tel, а не phone — A. P.] -->
<!-- [У вас в PHP переменная называется num, поэтому здесь name тоже должен быть num. Ну или наоборот, но поскольку тип tel, пусть будет num — A. P.] -->
<!-- [Ещё можно добавить шаблон валидации телефона, погуглите атрибут pattern — A. P.] -->
<input class="input" type="tel" placeholder="+380 Номер телефона" id="num" name="num">
</div>
<!-- [Немножко наведём красоту по доступности для слепых — A. P.] -->
<p id="messenger-type" class="call-to-action">Шаг №1: Выберите удобный вам мессенджер</p>
<div class="buttons" role="group" aria-labelledby="messenger-type">
<label>
<input type="radio" name="messenger" value="Facebook">
<img src="img/lgt-icon-facebook.svg" class="icon"></img>
<p>Messenger</p>
</label>
<label>
<input type="radio" name="messenger" value="Telegram">
<img src="img/lgt-icon-telegram.svg" class="icon"></img>
<p>Telegram</p>
</label>
<label>
<input type="radio" name="messenger" value="Viber">
<img src="img/lgt-icon-viber.svg" class="icon"></img>
<p>Viber</p>
</label>
</div>
<p><button type="submit" id="go" name="go">Отправить</button></p>
</form>
PHP
<?php
// [Я не очень понимаю, зачем эта проверка — A. P.]
if (isset($_POST['num'])){
// [Переменные переопределять не будем, у вас там путаница — A. P.]
// Параметры для подключения
$db_host = "localhost";
$db_user = "login"; // Логин БД
$db_password = "pass"; // Пароль БД
$db_base = 'name'; // Имя БД
$db_table = "tablename"; // Имя Таблицы БД
// Подключение к базе данных
$mysqli = new mysqli($db_host,$db_user,$db_password,$db_base);
// [Честно, я бы советовал вам применять PDO: во-первых, это красиво ©, а во-вторых, можно было бы поймать исключение, а не делать вот эти вещи — A. P.]
// Если есть ошибка соединения, выводим её и убиваем подключение
if ($mysqli->connect_error) {
die('Ошибка : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
}
// [Давайте подготовим запрос, чтобы к вам никто не пролез с SQL-инъекцией — A. P.]
$result = $mysqli->prepare(sprintf("INSERT INTO %s (num) VALUES (?)"), $db_table);
$result->bind_param("s", $_POST['num']);
$result->execute();
// [Поскольку мы хотим сделать редирект, уберём echo. По-хорошему, такие ошибки надо логировать в файл — A. P.]
// [А вот теперь возьмём значения радиокнопок из формы и определим, куда перенаправлять — A. P.]
$redirect = [
'Facebook' => 'https://messenger.com',
'Telegram' => 'https://t.me',
'Viber' => 'https://some.url.to.viber' // [Понятия не имею, какой у него URL — A. P.]
];
header(sprintf('location: %s', $redirect[$_POST['messenger']]));
}
Не отправляется форма с сайта?
Не работает отправка формы. Открывается страница php, но на почту ничего не приходит. Версия php на хостинге 5.4
HTML
<form action="/submit.php" method="POST">
<div class="col-md-4 col-sm-4 col-xs-12">
<input type="name" id="name" name="name" required>
<label for="name" class="name-label">Ваше имя:</label>
</div>
<div class="col-md-4 col-sm-4 col-xs-12">
<input type="tel" id="tel" name="tel" required>
<label for="tel" class="tel-label">Телефон:</label>
</div>
<div class="col-md-4 col-sm-4 col-xs-12">
<input type="submit" value="Отправить">
</div>
</form>
PHP
<?php
$recepient = "valentin.***@gmail.com";
$sitename = "Парк 1000 Узлов";
$name = trim($_POST["name"]);
$tel = trim($_POST["tel"]);
$subject = "Новая заявка с сайта "$sitename"";
$message = "Имя: $name nТелефон: $tel";
mail($recepient, $subject, $message, "Content-type: text/plain; charset="utf-8"n From: $recepient");
-
Вопрос заданболее трёх лет назад
-
227 просмотров
Пригласить эксперта
Возможно такое, что у хостера есть правило: можно отправлять письма только от отправителя, который зарегистрирован в веб-почте хостинга. Т.е. сперва надо зарегистрировать пользователя почты. Например: no-reply@ваш_домен.com. Потом в заголовках отправляемой письма указать эти данные.
$to = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: NO-REPLY@ваш_домен.com' . "rn" .
'Reply-To: NO-REPLY@ваш_домен.com' . "rn";
mail($to, $subject, $message, $headers);
Абстрагируйтесь пока от формы
Напишите что-то вроде:
mail(«Ваш@email.ru», «test», «test»);
Если на почту придет, то проблема в коде и хостер не при делах. Если не придет — пишите хостеру или лучше для начала почитайте FAQ на его сайте, наверняка там этот случай описан.
Ну и папку «Спам» у себя проверьте
-
Показать ещё
Загружается…
14 июн. 2023, в 03:49
3000 руб./за проект
14 июн. 2023, в 03:45
4000 руб./за проект
14 июн. 2023, в 01:02
5000 руб./за проект