Защита от спама
Принятые обозначения name и их назначение:
- identigilo – заголовок страницы (нужен в случаях когда есть функционал вернуться на страницу Х)
- traduko – язык страницы (нужен на мультиязычных сайтах)
- ago – название формы (узнать больше; получить подарок; задать вопрос)
- loko – расположение формы на странице (форма в блоке на первом экране; попап с кнопки детали тарифа Х на экране Тарифы)
- gpixel – ключевое слово латиницей, позволяющее понять, с какой страницы была оставлена заявка; нужно для отслеживания конверсии, применяется при переадресации на страницу спасибо, к примеру, для страницы smm: https://sapid.info/thanks/?gpixel=smm
- pago – url страницы с формой
- organizo – организация которую вы представляете
- interkonsento – галочка соглашения с политикой конфиденциальности и прочим
- nomo – имя
- posto – почта
- telefono – телефон
- mesago – сообщение (комментарий)
Идея в том, что форма должна содержать:
- отображаемые пользователю поля, в которых атрибут name написан на языке эсперанто;
- скрытые поля, содержащие техническую информацию (адрес страницы, УТП, идентификатор формы);
- скрытые поля для спам-ботов, в которых атрибут name заполнен на привычном, английском языке.
Соответственно обработчик проверяет условия:
- заполнено как минимум 1 поле из полей e-mail и телефон;
- не пустые поля с технической информацией;
- пустые поля для спам-ботов.
Если хоть 1 из условий не выполнено – обработчик переадресовывает на страницу благодарности с сообщением об ошибке, или на главную страницу сайта.
Код формы обратной связи (08.2022)
Добавлены новые поля для спам-бота, добавлены новые типы сокрытия данных
<form action="" method="post"> <?php /* requied fields: human information */ ?> <input type="text" name="nomo" placeholder="Имя"> <input type="email" name="posto" placeholder="E-mail" required="required"> <input type="text" name="telefono" placeholder="Телефон" required="required"> <input type="text" name="organizo" placeholder="Название вашей компании"> <textarea name="mesago" placeholder="Сообщение"></textarea> <?php /* галочка соглашения с политикой конфиденциальности */ ?> <input type="checkbox" name="interkonsento"> <button type="submit">Request a consultation</button> <?php /* for spam-bots: display none */ ?> <div style="display: none;"> <input type="text" name="name" value="" placeholder=" "> <input type="text" name="number" value="" placeholder=" "> <input type="text" name="tel" value="" placeholder=" "> <input type="email" name="email" value="" placeholder=" "> <input type="text" name="url" value="" placeholder=" "> <input type="text" name="text" value="" placeholder=" "> </div> <?php /* for spam-bots: visibility hidden */ ?> <div style="visibility: hidden; height: 0px;"> <input type="text" name="surname" value="" placeholder=" "> <input type="text" name="telephone" value="" placeholder=" "> <input type="email" name="mail" value="" placeholder=" "> <input type="text" name="link" value="" placeholder=" "> <input type="text" name="message" value="" placeholder=" "> </div> <?php /* for spam-bots: position outside the visible area */ ?> <div style="position: absolute; top: 0px; left: -4000px;"> <input type="text" name="nickname" value="" placeholder=" "> <input type="text" name="phone" value="" placeholder=" "> <input type="email" name="e-mail" value="" placeholder=" "> <input type="text" name="ref" value="" placeholder=" "> <input type="text" name="comment" value="" placeholder=" "> </div> <?php /* requied fields: technical information about the feedback form */ ?> <div style="display: none;"> <?php /* Заголовок страницы */ ?> <input type="text" name="identigilo" value=""> <?php /* Параметр для гугл пикселя */ ?> <input type="text" name="gpixel" value=""> <?php /* Язык страницы */ ?> <input type="text" name="traduko" value=""> <?php /* название формы (узнать больше; получить подарок; задать вопрос) */ ?> <input type="text" name="ago" value=""> <?php /* расположение формы на странице (форма в блоке на первом экране; попап с кнопки детали тарифа Х на экране Тарифы) */ ?> <input type="text" name="loko" value=""> <?php /* url страницы с формой */ ?> <input type="text" name="pago" value="<?php echo 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?>"> </div> </form>
Код формы обратной связи (2021)
<form action="" method="post"> <input type="text" name="nomo" placeholder="Имя"> <input type="email" name="posto" placeholder="E-mail" required="required"> <input type="text" name="telefono" placeholder="Телефон" required="required"> <input type="text" name="organizo" placeholder="Название вашей компании"> <textarea name="mesago" placeholder="Сообщение"></textarea> <button type="submit">Request a consultation</button> <div style="display: none;"> <input type="text" name="name"> <input type="email" name="mail"> <input type="email" name="email"> <input type="text" name="phone"> <input type="text" name="tel"> <input type="text" name="url"> </div> <div style="display: none;"> <input type="text" name="identigilo" value=""><?php /* Заголовок страницы */ ?> <input type="text" name="gpixel" value=""><?php /* Параметр для гугл пикселя */ ?> <input type="text" name="traduko" value=""><?php /* Язык страницы */ ?> <input type="text" name="ago" value=""><?php /* название формы (узнать больше; получить подарок; задать вопрос) */ ?> <input type="text" name="loko" value=""><?php /* расположение формы на странице (форма в блоке на первом экране; попап с кнопки детали тарифа Х на экране Тарифы) */ ?> <input type="text" name="pago" value="<?php echo 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?>"><?php /* url страницы с формой */ ?> <input type="text" name="interkonsento" value=""><?php /* галочка соглашения с политикой конфиденциальности */ ?> </div> </form>
Передача данных с кнопки
Способ заполнения в popup-форме полей технической информации, изменения заголовка/подзаголовка/надписи на кнопке:
<a href="#popup_form" onclick=' document.getElementById("ago").value = "Всплывающая форма `Получить консультацию`"; document.getElementById("detail").value = "Тарифный план `GOLD`, кнопка `Заказать`"; $("#popup_form_title").html("Получите консультацию"); $("#popup_form_descr").html("Мы ответим на все ваши вопросы об услуге и поможем сделать заказ!"); $("#butono").html("Получить консультацию"); ' class="fancybox">open popup</a>