Что делать, если при загрузке страницы создавать сеансы со случайными значениями.
Например
$_SESSION['name_for_email'] = 'something_random';
Затем поле ввода
<input type="text"
name="<?php echo htmlspecialchars( $_SESSION['name_for_email'], ENT_QUOTES, "UTF-8");?>"
>
Кажется, лучше использовать AJAX. Посетитель нажимает Отправить, передать все данные на внешний php, во внешний вызов php $_SESSION['name_for_email']
, чтобы узнать имя поля электронной почты.
Если без ajax, то пост и страница обновляются, но вверху страницы создается новый $_SESSION['name_for_email']
. Поэтому PHP-код для обработки формы ввода должен быть до определения $_SESSION['name_for_email']
Если много полей ввода, то необходимо использовать много сеансов. Может быть лучше какой-то упрощенной версии.
$_SESSION['name_for_email'] = 'something_random';
<input type="text"
name="field1<?php echo htmlspecialchars( $_SESSION['name_for_email'], ENT_QUOTES, "UTF-8");?>"
>
Просто нужно помнить, что field1
для электронной почты, field2
для имени и т. Д.
Но ... снова думаю. Основной вопрос заключается в том, что у бота либо не будет $_SESSION['name_for_email']
, либо для бота значение будет неправильным. Хорошо, бот "видит" электронную почту, "печатает" электронную почту.
Если определить какое-то скрытое поле с помощью $_SESSION['name_for_email']
и перед обработкой ввода проверить, совпадает ли $_SESSION['name_for_email']
с скрытым полем ввода, я полагаю, будет тот же эффект. Потому что, если бот знает правильное случайное значение, имена входных полей также будут правильными.