Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Общие вопросы > Капча |
Автор: COOLHack 7.8.2008, 02:01 |
Как использывать капчу? Я пишу скриптик, мне нужно чтоб если капча введена неверно, скрипт не выполнялся. |
Автор: Dima 2015 7.8.2008, 02:12 |
COOLHack, я лично никогда капчи не ставил. Но если бы пришлось, я бы мыслил так. У юзера на экране есть поле для ввода капчи и картинка с цифрами. В умных системах эти картинки какими-то хитрыми методами делаются, ну у нас нихай просто будет строчка цифр: 12345 Я бы эту строчку поместил в скрытое поле формы, а в скрипте, обрабатывающем форму делал бы проверку if ($user_code === $capcha) { // код } Добавлено через 12 минут и 26 секунд П.С. Наверное не самый лучший метод, ведь капча против бота служит. А бот может быть хитрый, он может хтмл-код просматривать и искать скрытые поля формы выцепляя из них регулярными выражениями содержание value, надо подумать чего бы получше придумать ![]() Как вариант - в скрытом поле передавать номер капчи - индекс в массиве всех этих капчей... |
Автор: COOLHack 7.8.2008, 02:26 |
а мне нужно как в умных скриптах, чтоб картинка и так далее. Я незнаю как это вообще реализовать, даж примерно. |
Автор: alexey009 7.8.2008, 02:28 |
COOLHack, зачем изобретать велосипед?![]() Есть уже готовые решения. вот пример 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 8.8.2008, 10:13 | ||
Оно-то да, но запрос некрасиво. +робот 100% просмотрит урл, а вот скрытые поля... |
Автор: serialselfkiller 11.8.2008, 08:58 | ||||
число передается в сесии... Вопрос в том как сделать чтобы форма проверяла сначала число Капчи и в случае успеха, отправляла данные Пример: (форма оправлят данные в родительский файл)
|
Автор: 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 |