Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Если кол-во знаков в поле > 0
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Если кол-во знаков в поле > 0

Страниц (3): [1] 2 3 »
 

1. yozuul - 20 Сентября, 2014 - 12:34:43 - перейти к сообщению
Хочу защиту от спама в формы сделать. Скрытое поле, которое сможет заполнить только бот.

Если при нажатии на input class="submit", кол-во знаков в поле input class="bot" > 0, то стоп, иначе form action="mail.php"

Напишите плз
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 в обратной связи подкорректировал такой код:

PHP:
скопировать код в буфер обмена
  1. if( dle_strlen($email, $config['charset']) > 1 ) {
  2.         $stop .= 'Фейл';
  3. }

И если поле заполнено, то ничего не отправляется.
Но это к движку привязано, а как универсально сделать, например на одностраничном лендинге.
5. yozuul - 25 Сентября, 2014 - 13:28:03 - перейти к сообщению
Никто не знает?
6. RickMan - 25 Сентября, 2014 - 13:40:18 - перейти к сообщению
Вместо dle_strlen используйте strlen и вот вам отвязка от DLE. Ну а лучше вообще через empty сделать.
7. yozuul - 04 Октября, 2014 - 19:09:27 - перейти к сообщению
Может кто-то написать? Я даже не знаю как переменные объявить.
8. dcc0 - 04 Октября, 2014 - 20:20:28 - перейти к сообщению
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <form method="get">
  3. <input type="hidden" name="bot" value="">
  4. <input type="submit" name="sub" value="a">
  5. </form>
  6. <?
  7. if(isset($_GET['sub']) && !empty($_GET['bot'])) {
  8. echo "Bot protection";
  9.  
  10. }
  11. ?>

Поле вместо hidden сркываешь, как уже сказали, с помощью стиля css.
(Хотя неужели никто еще не додумался прикрутить к ботам обход всех полей)
9. yozuul - 04 Октября, 2014 - 20:49:29 - перейти к сообщению
А дальше как?
PHP:
скопировать код в буфер обмена
  1. Иначе отправить данные из #form в mail.php


Я не знаю, придумал или не придумал. Это где-то на хабре читал типа "размышления на тему". Приводился такой пример. Вроде как бот это поле заполнит, и спам не отправится.
10. yozuul - 09 Октября, 2014 - 09:25:56 - перейти к сообщению
Ну что, никто не поможет?
11. yozuul - 16 Октября, 2014 - 12:14:43 - перейти к сообщению
Помогите люди добрые со скриптом.
12. yozuul - 24 Октября, 2014 - 13:39:54 - перейти к сообщению
вверх
13. yozuul - 10 Ноября, 2014 - 09:35:14 - перейти к сообщению
Актуально
14. Panoptik - 10 Ноября, 2014 - 13:01:33 - перейти к сообщению
А чем помочь то?
прикрутите капчу
15. esterio - 10 Ноября, 2014 - 14:30:22 - перейти к сообщению
yozuul пишет:
Может кто-то написать? Я даже не знаю как переменные объявить.

может вам стоит сначала азы синтаксиса подучить, а потом писать суперуниверсальную проверку

 

Powered by ExBB FM 1.0 RC1