как получить картинку с капчи зная номер сессии?

Тема в разделе "PHP", создана пользователем microsofd, 17 сен 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. microsofd

    microsofd Создатель

    Регистр.:
    25 фев 2008
    Сообщения:
    22
    Симпатии:
    1
    как получить картинку с капчи зная номер сессии?

    не могу никак разобраться..

    надо подставить SESSID в хедер?
     
  2. Sanuch

    Sanuch

    Регистр.:
    25 май 2009
    Сообщения:
    207
    Симпатии:
    70
    попробуйте, используя curl, скачать картинку передавая кукисы.
    Кукисы можно получить через тот же curl, загрузив требуюмую страницу с получением заголовка.
     
  3. pori

    pori Постоялец

    Регистр.:
    30 авг 2009
    Сообщения:
    114
    Симпатии:
    18
    покажите хоть сервис, откуда каптчу берете. Как правило из данных на странице нужно составить запрос на загрузку каптчи и совершенно не обязательно это номер сессии (он, как правило, присутствует присутствует на движках не для каптчи). Реже бывает, что каптчу нужно грузить по прямой ссылке (GET запрос), такая каптча на мейле (при большом количестве запросов с 1 IP)
     
  4. microsofd

    microsofd Создатель

    Регистр.:
    25 фев 2008
    Сообщения:
    22
    Симпатии:
    1
    вроде скачивать картинку научился через курл.. но возникла другая проблема: не сохраняются куки и не возвращается хедер при сохранениии картинки через curl_setopt($ch, CURLOPT_FILE, $file)
    в ответе возвращается 1 (это как я понял отчет о сохранениии картинки).

    но как же загрузить картинку и получить куки к ней ОДНОВРЕМЕННО ?:nezn:
     
  5. Sanuch

    Sanuch

    Регистр.:
    25 май 2009
    Сообщения:
    207
    Симпатии:
    70
    как вариант, не использовать CURLOPT_FILE, а получать результат в переменную, ее разделять на хедер и контент и с ними работать
     
  6. microsofd

    microsofd Создатель

    Регистр.:
    25 фев 2008
    Сообщения:
    22
    Симпатии:
    1

    а разве тогда не произойдет перегрузки капчи?
     
  7. Sanuch

    Sanuch

    Регистр.:
    25 май 2009
    Сообщения:
    207
    Симпатии:
    70
    как показывала практика, даже если полученая каптча отличается от первоначальной, то расматривать надо последнюю

    хотя не могу понять, зачем вам, при получении изображения, получать заголовок?
     
    microsofd нравится это.
  8. microsofd

    microsofd Создатель

    Регистр.:
    25 фев 2008
    Сообщения:
    22
    Симпатии:
    1
    хедер нужен чтоб выцепить куки..
    а куки посылать от предыдущей?
    сейчас попробую как вы посоветовали
    --------------------------------------

    знаете .. работает .. но я не могу понять почему.. ведь когда мы первый раз обращаемся к скрипту нам присваиваются куки именно к той картинке кот. мы на данный момент не можем распознать.. потом скачиваем саму картинку(но это же ведь другая картинка!) и отправляем с куками из первого запроса.. не разобраться..
     
  9. acronymcal

    acronymcal Прохожие

    однозначно что SESSID в куках это просто id сессии а не картинки
    номер (текст) картинки проще на серваке хранить в сессии для каждого запроса
    так можно генерить че угодно и не держать все капчи на винте а генерить их когда надо
    SESSID не связана с картинкой ваще
     
  10. SoaringHawk

    SoaringHawk Постоялец

    Регистр.:
    25 апр 2009
    Сообщения:
    61
    Симпатии:
    2
    Как вариант:
    PHP:
    curl_setopt($chCURLOPT_COOKIEFILE'/tmp/cookiefile_fdr454');
    curl_setopt($chCURLOPT_COOKIEJAR'/tmp/cookiefile_fdr454');
    Где "/tmp/cookiefile_fdr454" - файл в котором будут хранится куки.
     
Статус темы:
Закрыта.