Каков наилучший способ обработки контактной формы?
Кажется, я пишу контактные формы для кого-то или другого каждую неделю. Я разработал довольно эффективный процесс проверки / почтового клиента / почты, спасибо / сохранения в БД / страницы благодарности, но мне было интересно, какие уроки есть у других для выполнения этой наиболее распространенной из задач веб-сайта?
2 ответа
Лучший совет, который я бы вам дал, - это найти хороший способ предотвратить спам. Мы используем технику honeypot, которую мы находим очень эффективной, а также очень простой в реализации. Он включает в себя добавление двух дополнительных текстовых полей к каждой форме, скрытых с помощью CSS. В одном из этих полей (давайте вызовем input1) будет задано значение, которое вы можете проверить на своей странице обработки, в другом поле (input2) его значение останется пустым. Много автоматизированного спама будет использовать бота, который будет определять наличие формы и автоматически заполнять все поля формы. С нашей техникой, просто проверяя, что input1 все еще имеет свое начальное значение и что input2 все еще имеет значение "", мы можем догадаться, что форма не была автоматически заполнена ботом или подобным. У нас есть более продвинутые методы для проверки содержимого каждого поля, но в качестве простого трюка, он является настоящим победителем и почти полностью уничтожил спам в форме автоматической связи.
- Убедитесь, что он работает без Javascript (или не работает изящно)
- Удалите любые неприятные символы перед отправкой электронного письма
- Используйте параметризованные запросы при записи в базу данных
- Будь уверен
From
или жеReply-to
в заголовке указывается адрес электронной почты отправителя - Прочитайте эту статью о проверке формы.