Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > 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: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 |
bazzjr, Muerto, Судя по всему, человек собирает со списка сайтов формы, выковыривает из них капчи, выводит эти картинки на свою страничку, заставляет юзера их распознать и элегантно посылает сообщение юзера на все-все-все форумы за один раз... |
Автор: BuShaRt 16.8.2010, 08:36 |
Если я правильно понял суть темы, то ее пора закрывать т.к. она несет в себе обсуждение своеобразного взлома капч, что не приветствуется правилами форума. Автору же и некоторым из тех, кто наивно думает, что эта задача легко решаемая, я могу сообщить, что на то Капчи и делались, чтоб каждый юный программист не мог насиловать формы на сайте. И очень плоха та капча с которой прокатит данный фокус. |
Автор: ksnk 16.8.2010, 12:47 |
BuShaRt, я не очень понимаю, как может капча помочь в детектировании именно такого случая заполнения формы? -- curl-запрос с сайта, получение сайтом картинки (собственно картинка а не url), вывод этой картинки юзеру и так далее... единственная простая защита - подключение к механизму защиты еще и javascript'а... Пока не каждая птица ( кроме, конечно, большого гугла ![]() |
Автор: BuShaRt 17.8.2010, 17:13 |
Ну вообще можно сформировать набор проверок (на пример $_SERVER['HTTP_REFERER']), которые по воле капчи будут генерировать абсолютно нелогичные ответы сервера при подозрение на вышеизложенный операции. Программист путается, злиться и возможно бросает затею. Ну а вообще в данном случае может случиться так, что сессии просто начнут друг друга затирать. Во |
Автор: bazzjr 18.8.2010, 09:23 | ||
Это возможно, и скорей всего так и будет. |