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


Автор: MakNik 13.8.2010, 11:04
Необходимо облегчить пользователю прочесс отправки формы на несколько сайтов.
Идея такая:
Пользователь заполняет форму.
Переходит на страницу отправки форм. 
Вводит для каждой формы соответствующую капчу и нажимает кнопку отправить.

Делаю так (в отдельном фрейме для каждой формы):
<form action='url формы' method=post>
<input type=hidden name='Имя поля' value='значение'>
...
Введите значение с картинки:
<img src="url капчи">
<input type=text name='Имя поля для ввода капчи' value=''>
...
</form>

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

Подскажите, пожалуйста, как можно решить такую ситуацию?

Автор: bazzjr 13.8.2010, 11:33
Нет ты не правильно понимаешь. Сессия создается до вывода картинки капчи.

Такой метод отправки форм с капчей не будет работать, так как капча у тебя создается одна, по одному идентификатору сессии.

Автор: MakNik 13.8.2010, 11:39
Цитата(bazzjr @ 13.8.2010,  11:33)
Такой метод отправки форм с капчей не будет работать, так как капча у тебя создается одна, по одному идентификатору сессии.

тогда подскажите, пожалуйста, как правильно реализовать такой механизм?

Автор: bazzjr 13.8.2010, 11:41
А зачем на каждую форму капча?
Сделай одну капчу на все формы.

Добавлено через 9 минут и 58 секунд
В любом другом случае, тебе нужно будет дорабатывать скрипт капчи или искать новый, который поддерживает множество капч за одну сессию.

Автор: MakNik 13.8.2010, 14:01
Капча формируется на каждом сайте отдельно.
Суть в том, что необходимо облегчить ввод формы на несколько сайтов, не меняя при этом возможности вводить формы с каждого сайта отдельно.
т.е. я пытаюсь отправить данные, введенные на одном сайте, в другой сайт, при этом пользователь не видит сайт получатель до отправки формы, а видит его уже после ввода капчи и нажатия на кнопку "отправить форму".

Автор: programming 13.8.2010, 15:16
Это не ваши, а чужие сайты?

Автор: Muerto 13.8.2010, 18:29
Я у себя делаю это так

$captcha=getcaptcha();

И далее если после этого хоть миллион тем то разницы нету, все равно выводим $captcha

Если капча правильно построена, и не генерирует сессию прямо в коде капчи, то будет работать на все 100

Автор: bazzjr 14.8.2010, 08:58
Muerto, что значит "и не генерирует сессию прямо в коде капчи"?

По моему такой подход не верен.


MakNik, а какая разница, если человек ввел в одной из форм правильную капчу, то значит он человека не бот. Поэтому может как вариант везде одинаковую капчу выводить?

Автор: ksnk 14.8.2010, 09:23
bazzjrMuerto

Цитата(MakNik @  13.8.2010,  14:01 Найти цитируемый пост)
Капча формируется на каждом сайте отдельно.


Судя по всему, человек собирает со списка сайтов формы, выковыривает из них капчи, выводит эти картинки на свою страничку, заставляет юзера их распознать и элегантно посылает сообщение юзера на все-все-все форумы за один раз... 

Автор: MakNik 16.8.2010, 08:18
Цитата(ksnk @  14.8.2010,  09:23 Найти цитируемый пост)
Судя по всему, человек собирает со списка сайтов формы, выковыривает из них капчи, выводит эти картинки на свою страничку, заставляет юзера их распознать и элегантно посылает сообщение юзера на все-все-все форумы за один раз...

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

Автор: BuShaRt 16.8.2010, 08:36
Если я правильно понял суть темы, то ее пора закрывать т.к. она несет в себе обсуждение своеобразного взлома капч, что не приветствуется правилами форума.

Автору же и некоторым из тех, кто наивно думает, что эта задача легко решаемая, я могу сообщить, что на то Капчи и делались, чтоб каждый юный программист не мог насиловать формы на сайте. И очень плоха та капча с которой прокатит данный фокус.

Автор: ksnk 16.8.2010, 12:47
BuShaRt, я не очень понимаю, как может капча помочь в детектировании именно такого случая заполнения формы? 
-- curl-запрос с сайта, получение сайтом картинки (собственно картинка а не url), вывод этой картинки юзеру и так далее...

единственная простая защита - подключение к механизму защиты еще и javascript'а... Пока не каждая птица ( кроме, конечно, большого гугла  smile ) может запустить себе еще и js-интерпретатор на сайте...

Автор: BuShaRt 17.8.2010, 17:13
Ну вообще можно сформировать набор проверок (на пример $_SERVER['HTTP_REFERER']), которые по воле капчи будут генерировать абсолютно нелогичные ответы сервера при подозрение на вышеизложенный операции. Программист путается, злиться и возможно бросает затею.

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

Во

Автор: bazzjr 18.8.2010, 09:23
Цитата(BuShaRt @  17.8.2010,  17:13 Найти цитируемый пост)
Ну а вообще в данном случае может случиться так, что сессии просто начнут друг друга затирать.


Это возможно, и скорей всего так и будет.

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