Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Капча


Автор: COOLHack 7.8.2008, 02:01
Как использывать капчу? 
Я пишу скриптик, мне нужно чтоб если капча введена неверно, скрипт не выполнялся. 

Автор: Dima 2015 7.8.2008, 02:12
COOLHack, я лично никогда капчи не ставил. Но если бы пришлось, я бы мыслил так.

У юзера на экране есть поле для ввода капчи и картинка с цифрами. В умных системах эти картинки какими-то хитрыми методами делаются, ну у нас нихай просто будет строчка цифр: 12345

Я бы эту строчку поместил в скрытое поле формы, а в скрипте, обрабатывающем форму делал бы проверку

if ($user_code === $capcha) {
// код
}

Добавлено через 12 минут и 26 секунд
П.С. Наверное не самый лучший метод, ведь капча против бота служит. А бот может быть хитрый, он может хтмл-код просматривать и искать скрытые поля формы выцепляя из них регулярными выражениями содержание value, надо подумать чего бы получше придумать smile

Как вариант - в скрытом поле передавать номер капчи - индекс в массиве всех этих капчей...

Автор: COOLHack 7.8.2008, 02:26
а мне нужно как в умных скриптах, чтоб картинка и так далее.
Я незнаю как это вообще реализовать, даж примерно.

Автор: alexey009 7.8.2008, 02:28
COOLHack, зачем изобретать велосипед?smile
Есть уже готовые решения. вот пример http://www.captcha.ru

Автор: COOLHack 7.8.2008, 02:33
спс, чёт я сразу не додумался на этот сайт зайти...

Автор: serialselfkiller 7.8.2008, 03:59
А как сделать проверку капчи?
Есть форма, Кнопка проверки капчи находиться на ней и отсылает данные полей вместе с проверкой капчи...
Как их разделить?

Автор: Ockonal 7.8.2008, 13:55
serialselfkiller,
Вообще, это зависит от самого скрипта каптчи. 
Иногда число передается в hidden-полях, иногда в сессии.
Покажи скрипт. 

Автор: mclight 7.8.2008, 14:17
алгоритм работы капчи следующий:
1) скрипт генерирует случайное число
2) записывает его в сессию
3) генерирует картинку с этими цифрами, ну например используя функции GD2

1) Пользователь вводит числа на картинке
2) скрипт сверяет его с числом в сессии
3) если схожи, то пожалуйста.
4) если нет, то опять.....

использование скрытых полей в капче это как-то не то что не хорошо, даже глупо.
это настолько очевидно, что даже вне дисскуссий.

за пять миннут можно написать скрипт, который парсит страницу, вырезает оттуда значение скрытого поля. и все!
а вот когда этот же скрипт дойдет до картинки с кодов, все что он прочитает это <img src="captcha.php" />

Автор: Ockonal 7.8.2008, 15:37
Цитата

за пять миннут можно написать скрипт, который парсит страницу, вырезает оттуда значение скрытого поля. и все!

Угу, будем мы так вставлять в поля значение сгенерированного числа

Автор: mclight 8.8.2008, 07:55
Цитата(Ockonal @ 7.8.2008,  17:37)
Цитата

за пять миннут можно написать скрипт, который парсит страницу, вырезает оттуда значение скрытого поля. и все!

Угу, будем мы так вставлять в поля значение сгенерированного числа

а зачем вставлять, есл можно сразу запрос построить со всеми нужными и не нужными параметрами.
вот как от Этого защититься - это тема другого разговора. топика

Автор: Ockonal 8.8.2008, 10:13
Цитата

а зачем вставлять, есл можно сразу запрос построить со всеми нужными и не нужными параметрами.
вот как от Этого защититься - это тема другого разговора. топика

Оно-то да, но запрос некрасиво. +робот 100% просмотрит урл, а вот скрытые поля...

Автор: serialselfkiller 11.8.2008, 08:58
Цитата(Ockonal @ 7.8.2008,  13:55)
serialselfkiller,
Вообще, это зависит от самого скрипта каптчи. 
Иногда число передается в hidden-полях, иногда в сессии.
Покажи скрипт.

число передается в сесии... 
Вопрос в том как сделать чтобы форма проверяла сначала число Капчи и в случае успеха, отправляла данные

Пример:

(форма оправлят данные в родительский файл)

Код

------------------------
ФИО
МАЙЛ
ЧИСЛО КАПЧИ
------------------------
--Кнопка Отправки--




Автор: HackMan 11.8.2008, 09:03
Цитата(serialselfkiller @  11.8.2008,  08:58 Найти цитируемый пост)
Вопрос в том как сделать чтобы форма проверяла сначала число Капчи и в случае успеха, отправляла данные

AJAX. Зачастую - это будут только неоправданные сложности.

Автор: serialselfkiller 11.8.2008, 09:12
А если без AJAX'a? Можно как нибудь?

Автор: HackMan 11.8.2008, 09:18
Можно. Делай в два этапа: сначала предложи ввести код с картинки, потом перекинь на вторую форму, откуда будут забиваться данные.

Автор: serialselfkiller 11.8.2008, 09:22
Не хотел так, но видимо придется.... 
А если Ajax'ом , то возникает такая проблема:
http://forum.vingrad.ru/forum/topic-223388.html

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)