Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Капча
Форумы портала PHP.SU » » Работа с сетью » Капча

Страниц (1): [1]
 

1. Delovoy - 07 Февраля, 2012 - 12:03:28 - перейти к сообщению
Захожу на сайт, на котором для подачи объявления нужно указать значение капчи

В исходном коде страницы отображается это так

CODE (html):
скопировать код в буфер обмена
  1. <img alt="" class="vmiddle marginright5" id="captcha_image" src="http://ххх/kiev_city/captcha//"/>


Видно, что капча береться с http://ххх/kiev_city/captcha//

если обращаюсь CURL по этому url - то получаю новую капчу, а не та что была на странице ...

собственно вопрос - как можно получить именно ту капчу, что изначально на странице ?

если уже она отображается, значит где-то в браузере она хранится ...
как достать ее ? кто сталкивался ?
2. Мелкий - 07 Февраля, 2012 - 12:09:40 - перейти к сообщению
Delovoy пишет:
если уже она отображается, значит где-то в браузере она хранится ...

Кэш браузера. Расположение зависит от браузера и ОС.

Другой вопрос - нафиг она вам? Если будете забирать, распознавать и что-то делать курлом - то курлом же и грузить её надо. Сперва - страницу, оттуда - капчу. Не забудьте только про куки.
3. Delovoy - 07 Февраля, 2012 - 12:19:19 - перейти к сообщению
Я так и пробовал:

1. Получил страницу, на ней капча
2. Обратился курлом к сервису капчи - получил jpg

Только это новый jpg - не тот, что отображается изначально на странице

соответсвенно, если я ввожу данные с новой капчи - то при отправке страницы пишет, что капча не верна

(наверное существует какая-то контрольная сумма на странице или какая-то другая технология, которая позволяет отличить изначально загруженную капчу и свежий, полученный вариант)

если кеш браузера зависит от расположения и ОС ... то это очень серьезно осложняет дело ....

а можно как-то вырезать кусок экрана ? Улыбка
либо какой-то еще способ ?
4. EuGen - 07 Февраля, 2012 - 12:28:29 - перейти к сообщению
Delovoy
Исходную страницу тоже через curl получайте.
5. Delovoy - 07 Февраля, 2012 - 12:30:23 - перейти к сообщению
EuGen пишет:
Delovoy
Исходную страницу тоже через curl получайте.


исходную страницу тоже CURL получаю и что это мне дает, не совсем понял ?
6. Zuldek - 07 Февраля, 2012 - 12:37:20 - перейти к сообщению
Delovoy пишет:
EuGen пишет:
Delovoy
Исходную страницу тоже через curl получайте.


исходную страницу тоже CURL получаю и что это мне дает, не совсем понял ?


Забирайте и страницу и каптчу одним запросом. Когда вы скачиваете страницу сайта то вам приходит уже капча. Разбирайте и работайте. Когда вы обращаетесь к скрипту каптчи естественно он отдаст вам новую.

upd. на правах пророка предвидя вопросы - я так и делаю, сделал - не вижу капчу, как её получить? - код в студию которым забираете страницу.
7. Мелкий - 07 Февраля, 2012 - 12:49:26 - перейти к сообщению
Delovoy пишет:
Только это новый jpg - не тот, что отображается изначально на странице

А кто сказал, что они вообще должны совпадать?
Распространены 2 варианта генерации капчи:
0) значение выбирается при отрисовке страницы и тогда да, капча будет повторяться
1) значение выбирает скрипт отрисовки капчи.
Но нас-то это не касается. Это проблема той стороны следить за консистентностью данных.

Протокол HTTP не сессионный, узнать, что вот этот юзер - это тот же самый, что и 5 минут назад - можно только по тому, что сам пользователь о себе сказал:
0) куки
1) какой-нибудь хитрый get или post запрос
Всё.
В большинстве случаев используется кука, а с куками курл умеет работать сам.
(Добавление)
Zuldek пишет:
Забирайте и страницу и каптчу одним запросом.

Невозможно в принципе. Читать, что такое HTTP и как он работает.
8. EuGen - 07 Февраля, 2012 - 12:50:52 - перейти к сообщению
Мелкий
Зачем рассказал? Так бы было поле для раздумий.
9. Мелкий - 07 Февраля, 2012 - 13:23:37 - перейти к сообщению

EuGen, а по-моему было бы не поле, а теннисный корт с перекидыванием одного и того же сообщения на разный манер, что, впрочем, и так уже видно по теме Закатив глазки
10. Delovoy - 07 Февраля, 2012 - 14:10:18 - перейти к сообщению
Я правильно понял?

мне вместе со страницей приходит кука, в которой каким-то образом указано, какая именно капча

когда я получаю новую капчу и отправляю всю страницу на сервер, вместе с ней отправляется кука и сервер видит что она не соответствует капче и тогда ругается на ошибку

т.е. моя задача сводится к тому, чтобы найти где и каким образом в куке указывается капча и потом получить новую капчу и сформировать новую куку ?
11. EuGen - 07 Февраля, 2012 - 14:15:05 - перейти к сообщению
Верно. Вам нужно посмотреть какие куки генерируются страницей, где есть картинка и имитировать их когда отсылаете curl-запрос (установкой кук через curl)

 

Powered by ExBB FM 1.0 RC1