Форма веб-сайта отправляется автоматически (скрипт PHP запускается автоматически)

Недавно я начал управлять сайтом на SiteGround, и с моей формой «Свяжитесь с нами» происходит что-то странное, чего я не могу понять. Каждый день, обычно в 13:00 по восточному времени, я получаю электронное письмо, в котором сообщается, что форма «Свяжитесь с нами» заполнена, но в ней нет никакой информации.

На странице есть несколько простых текстовых вводов и переключатель, проверка формы обрабатывается javascript, поэтому, если ввод оставлен пустым, форма не будет отправлена. Когда все проверено, информация отправляется через AJAX, и простой PHP-скрипт отправляет электронное письмо (функция PHP mail()), а также вводит информацию в БД.

Итак, каждый день в 13:00, обычно в точку, я получаю электронное письмо без какой-либо информации. Форма была протестирована, и информация отображается, когда она введена правильно. Я не знаю, что может быть причиной этого! Я знаю, что могу предотвратить запись электронной почты и базы данных с помощью простой проверки переменных в PHP-скрипте, но я хотел бы знать, почему это происходит в первую очередь, есть ли у кого-нибудь какие-либо идеи?

Я могу опубликовать некоторый код, но это все базовый HTML, один вызов AJAX jquery и около 10 строк php для отправки электронной почты.


person Kasey E    schedule 03.08.2016    source источник
comment
Проверьте журналы доступа к вашему серверу, и вы увидите, откуда осуществляется доступ к странице.   -  person aynber    schedule 03.08.2016
comment
Возможно, бот просматривает ваш сайт. Есть ли у вас аналитика на сайте? Или отслеживание IP пользователя, заполнившего форму? Вы также должны иметь проверку на стороне сервера. Проверка JS является любезностью для пользователя, серверная сторона имеет решающее значение для бизнеса.   -  person Rory McCrossan    schedule 03.08.2016
comment
Убедитесь, что ваш скрипт php sendmail проверяет отправку сообщения перед запуском кода.   -  person Danimal    schedule 03.08.2016
comment
Как насчет добавления рекапчи?   -  person j08691    schedule 03.08.2016
comment
Паук-бот был единственным, что пришло мне на ум, но я сам недостаточно знаю о них, чтобы предположить это. Я добавляю проверку на стороне сервера прямо сейчас и использую Google Analytics. Я проверю свои журналы доступа, но я получаю представление, даже когда аналитика Google говорит, что посетителей нет. Спасибо всем за быстрые ответы. Возможно, я потерял баллы за этот вопрос, но я должен был спросить, мне нужно знать, почему, прежде чем я все исправлю, лол!   -  person Kasey E    schedule 03.08.2016
comment
@KaseyE Google Analytics, вероятно, не будет считать поисковый робот Google Analytics посещением, и поисковый робот Google Analytics действительно пытается отправить формы. Во-первых, вам нужно добавить проверку на стороне сервера, а во-вторых, вы можете добавить запись Disallow: /path в свой robots.txt для этого пути и надеяться, что поисковые роботы будут его уважать.   -  person apokryfos    schedule 03.08.2016
comment
Предложение @RoryMcCrossan о проверке на стороне сервера невозможно переоценить. Вполне возможно, что бот, который не может анализировать или запускать JavaScript, заходит на вашу страницу и отправляет вашу форму. В этом случае ваша проверка JavaScript является спорной, поэтому крайне важно, чтобы вы выполняли проверку на стороне сервера. Чтобы убедиться в этом, откройте свою страницу в Chrome, откройте инструменты разработчика, выберите параметр Disable JavaScript и попробуйте отправить форму. Если это работает, вы нашли свою проблему.   -  person War10ck    schedule 03.08.2016


Ответы (1)


Однажды у меня была эта проблема, я не мог найти объяснения, но у меня есть решение: просто проверьте пустые значения перед вызовом вашей почтовой функции. Например.:

if(!empty($_POST['txtEmail']) && !empty($_POST['txtMessage'])) mail(...);
person Mat VP    schedule 03.08.2016
comment
да, это то, что я в итоге сделал, я просто пытался сначала найти это неуловимое объяснение. Ну что ж - person Kasey E; 03.08.2016
comment
Я считаю, что у @Rory McCrossan есть ответ с роботами-пауками. - person Mat VP; 03.08.2016