Хочу защиту от спама в формы сделать. Скрытое поле, которое сможет заполнить только бот.
Если при нажатии на input class="submit", кол-во знаков в поле input class="bot" > 0, то стоп, иначе form action="mail.php"
Напишите плз
1. yozuul - 20 Сентября, 2014 - 12:34:43 - перейти к сообщению
2. Viper - 20 Сентября, 2014 - 13:54:09 - перейти к сообщению
yozuul если вы хотите на javascript то толку от этого будет 0, т.к. боты срут на js. К тому же есть ещё CSRF. Почитайте на досуге и тогда уточните свой вопрос.
3. Мелкий - 20 Сентября, 2014 - 14:50:23 - перейти к сообщению
Viper пишет:
т.к. боты срут на js.
Именно на этом и можно построить логику. Нет js - вероятность того, что это бот - куда выше.
Или стилями (лучше в подключаемом внешнем файле стилей) скрыть какое-нибудь популярное поле - email, например. Если оно заполнено - скорей всего это бот. Спам-боты не будут анализировать CSS с попыткой выяснить должно ли это поле быть заполненным.
4. yozuul - 20 Сентября, 2014 - 16:50:10 - перейти к сообщению
Почему на JS то? На PHP.
В DLE в обратной связи подкорректировал такой код:
В DLE в обратной связи подкорректировал такой код:
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- if( dle_strlen($email, $config['charset']) > 1 ) {
- $stop .= 'Фейл';
- }
И если поле заполнено, то ничего не отправляется.
Но это к движку привязано, а как универсально сделать, например на одностраничном лендинге.