Помогите написать простой антиспам, типа 2+4=... можно сессии, куки, файлы для хранения переменных. значение передается в форме методом post.
А если что-нибудь попроще и без изображений? а по поводу captcha- я так и не понял, как мне её подключить к себе (сравнить картинку с введенным кодом) и прочитать сессию
в форме текстовое поле добавляешь и скрываешь его с помощью css, если это поле приходит заполненное, значит писал бот
PHP: //это вверху страницы, до хтмл session_start(); $captcha = isset($_POST['captcha'])?abs((int)$_POST['captcha']):0; if(//если сабмит формы) { if($captcha == ($_SESSION['captcha'][0] + $_SESSION['captcha'][1])) { ///каптча совпала } } $_SESSION['captcha'] = array(mt_rand(1, 50), mt_rand(1, 50)); HTML: ///а это уже хтмл Сколько будет <?php echo $_SESSION['captcha'][0]; ?> + <?php echo $_SESSION['captcha'][1]; ?>? <input name="captcha" type="text" maxlength="3" style="border:1px solid red"> код вытянул из своих старых залежей говнокода. распространение и модификация в соответствии с GNU лицензией. (C) Orange ShitCode Inc
Да ну, плохая идея. Просили сделать случайный текст и поле для ввода. если текст совпадает с введенным значением, выполняется функция. Есть решения?
nikemat и чем оно плохое? тем что автор сего топика не знает как переделать цифры на слова/буквы? ну да, тогда плохое. да да, продолжай ждать, что тебе готовое напишут.
Там была идея с использованием скрытого поля, если заполнено- то писал робот. На самом деле хоть все поля там перемешать, и по содержимому полей пропускать/не пропускать сообщение, все равно ненадежно. (например, если в поле с названием name, предназначенного для ввода e-mail, нет знака @/ боты основываются на именах полей, а человек- на подписях к ним). спасибо, попробую
Да, вроде работает, хотя я вчера это уже делал. только сравнение переданных и установленных данных писал до формы, а надо после. но всё равно спасибо!
просто если есть поле с названием name то бот его заполнит. А человек - если не увидит, то не заполнит. Но стопроцентной гарантии этот метод конечно не дает. Впрочем, стопроцентной гарантии ни один метод не дает