Заявка с формы не сохранилась - разбор причин
Посетитель нажал «Отправить», а заявки в результатах нет. Разбираем причины по убыванию частоты, начиная с проверки самих результатов формы.
С чего начать
Смотрим последние сохранённые результаты:
SELECT ID, FORM_ID, DATE_CREATE, USER_ID FROM b_form_resultORDER BY ID DESC LIMIT 10; -- последние заявки по всем формам сайта-- пустая выборка означает, что до сохранения дело вообще не дошлоСписок результатов отвечает на главный вопрос за секунду. Если свежие записи есть, разбор переходит к письмам и к фильтрам списка, а если их нет - к самой отправке формы.
Проверяем ответ формы на отправку:
curl -s -X POST -F 'WEB_FORM_ID=3' -F 'web_form_submit=Y' https://example.com/feedback/ \ | grep -iE 'ошибк|error|обязательн' | head# сообщение об ошибке приходит в разметке, а шаблон формы его иногда не показываетФорма почти всегда сообщает о проблеме, но шаблон не всегда это сообщение выводит. Посетитель видит «ничего не произошло», а в ответе сервера лежит понятный текст про незаполненное поле.
Смотрим обработчики событий модуля форм:
$handlers = \Bitrix\Main\EventManager::getInstance() ->findEventHandlers('form', 'onBeforeResultAdd');printf("обработчиков: %d\n", count($handlers));// свой обработчик может молча отменить сохранение результатаПроверяем защиту от спама на форме:
printf("капча=%s\n", \CForm::GetByID($formId)->Fetch()['USE_CAPTCHA']);// ловушки и ограничение частоты чаще всего добавляют своим кодом рядом с формойСверяем фильтр в списке результатов:
SELECT COUNT(*) FROM b_form_result WHERE FORM_ID = 3 AND DATE_CREATE >= CURDATE();-- в интерфейсе список часто отфильтрован по статусу или по датам с прошлой сессииПричины
-
Не прошли обязательные поля формы примерно 25% случаев
ПризнакСтраница перезагружается, форма остаётся заполненной, результата в базе нет.
ПроверкаОтправляем форму запросом из консоли и ищем сообщение об ошибке в ответе.
Что делатьВыводим ошибки в шаблоне формы: посетитель должен видеть, какое поле не заполнено.
-
Сработала защита от спама примерно 20% случаев
ПризнакЧасть заявок теряется, а у части посетителей форма не отправляется совсем.
ПроверкаСмотрим настройку картинки с кодом у формы и свои проверки рядом с обработчиком.
Что делатьСмягчаем проверки и показываем причину отказа: молчаливый отказ выглядит как поломка.
-
У группы нет прав на заполнение формы примерно 15% случаев
ПризнакФорма отправляется у администратора и не работает у гостя сайта.
ПроверкаПроверяем права формы для группы всех пользователей в её настройках доступа.
Что делатьВыдаём право заполнения нужным группам, включая неавторизованных посетителей.
-
Отправка идёт мимо сохранения результата примерно 15% случаев
ПризнакПисьмо приходит, а в результатах формы пусто, либо наоборот.
ПроверкаСмотрим код обработчика: сохраняет он результат формы или только шлёт письмо.
Что делатьСохраняем результат средствами модуля форм, а письмо оставляем дополнительным каналом.
-
Обработчик события отменяет сохранение примерно 15% случаев
ПризнакЗаявки перестали приходить после доработки, хотя форма не менялась.
ПроверкаПечатаем список обработчиков события сохранения результата и читаем их код.
Что делатьПравим обработчик: отмена сохранения должна происходить осознанно и с сообщением.
-
Смотрят не тот список или не тот фильтр примерно 10% случаев
ПризнакВ базе записи есть, а в административном разделе список выглядит пустым.
ПроверкаСчитаем результаты формы за сегодня прямым запросом к таблице результатов.
Что делатьСбрасываем фильтр списка результатов: он сохраняется между заходами сотрудника.
Частые вопросы
Письмо пришло, а результата нет. Так бывает?
Да, если форма собрана своим кодом и только отправляет письмо. Хранение и письмо - разные вещи, и заявку стоит сохранять всегда.
Где искать результаты веб-формы?
В разделе результатов той же формы в административной части. Список помнит фильтр, поэтому при пустой выдаче его сначала сбрасывают.
Можно ли восстановить потерянные заявки?
Только если они писались в журнал или уходили письмом. Из ниоткуда данные не восстановить, поэтому журнал отправок заводят заранее.
Как убедиться, что форма работает после правок?
Тестовой отправкой с проверкой записи в результатах и письма. Проверять только письмо недостаточно: сохранение и отправка независимы.
Мешает ли кэш увидеть новые заявки?
Нет, список результатов не кэшируется. Пустой список почти всегда объясняется фильтром или тем, что заявка не сохранилась.
Смежное
-
Обратная связь и заявки - оглавление подтемы
-
Форма обратной связи: веб-форма, письма, свой обработчик - как устроена сама форма
-
Заявки с сайта: хранение, дубли, передача в CRM - что происходит с заявкой дальше
-
Спам через формы сайта: капча, скрытое поле, ограничение частоты - защита, которая иногда мешает
-
Письма с сайта не доходят: разбор причин по убыванию частоты - соседний разбор про письма
-
Отправка формы через AJAX: проверка полей, защита, ответ с ошибками - когда форма уходит запросом
-
Веб-формы - устройство модуля целиком
-
Настройка веб-формы: вопросы, статусы результатов, права - вопросы, поля и права на форму
-
Письмо с заявкой приходит пустым: разбор причин - когда заявка есть, а письмо без данных
-
Ограничения веб-формы и правка анкеты - если анкету не принимает ограничение