@fomenko_alexandr

Почему при переходе по прямой ссылке на капчу — получаю кракозябры?

Привет мастера.
Подскажите пожалуйста. Пытаюсь написать авторизацию на сайте с помощью курла. При попытке загрузить страницу - получаю страницу без дизайна, и прогруженной капчи капчи. Это решаю благодаря смене всех ссылок с помощью регулярок на их домен, тогда капча отображается нормально.
Но при попытке передать код капчи - оно всегда пишет, что капча неправильная. Может быть такое, что когда я ругулярками всё заменил и оно подгрузилось, и записывается в сессию браузера, с которого я открыл страницу. А предыщая капча, которую я не увидел - пишется в сессию курла?
И ещё вопрос, потом при попытке открыть капчу напрямую получаю какие-то дикие кракозябры (если открывать курлом), а браузер всё нормально отображает.
Вот этот сайт - https://goo.gl/RAxpYn

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

Буду очень признателен, если подскажите.

Мой код - курл-запроса
public static function curlQuery($url, $post=false, $cookie=false) {
        $ci = curl_init($url);

        if($post) {
            curl_setopt($ci, CURLOPT_POST, 1);
            curl_setopt($ci, CURLOPT_POSTFIELDS, $post);
        }

        if($cookie) {
            curl_setopt($ci, CURLOPT_COOKIEFILE, 'cookie.txt');
            curl_setopt($ci, CURLOPT_COOKIEJAR, 'cookie.txt');
        }

        curl_setopt($ci, CURLOPT_HEADER, 0);
        curl_setopt($ci, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ci, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ci, CURLOPT_REFERER, 'http://profiwm.ru/log.in.php');

        curl_setopt($ci, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36');

        $result = curl_exec($ci);
        curl_close($ci);

        return $result;
    }
  • Вопрос задан
  • 178 просмотров
Пригласить эксперта
Ответы на вопрос 1
NeLexa
@NeLexa
Этими кракозябрами, по-видимому, является бинарное содержимое изображения.
Откройте любое изображение в блокноте или в виде HEX и вы поймёте это.
По поводу авторизации, проверьте, чтобы вы передавали и записывали все куки.
Сначала загружаете страницу с авторизацией, сохраняете куки сессии, далее с этими куками сессии загружаете капчу, после чего отправляете курлом пост запрос с этими куками сессии.
Запрос примерно такого вида, адаптируйте для php сами.

curl 'http://profiwm.ru/log.in.php?login' -H 'Host: profiwm.ru' -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36')' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' -H 'Accept-Language: ru,en-US;q=0.7,en;q=0.3' --compressed -H 'Referer: http://profiwm.ru/log.in.php' -H 'Cookie: profiwm=osjp2bn58b61v5cloivn32rie3' --data 'type=nick&nick=YOUR_NICK&pass=YOUR_PASSWORD&chislo=YOUR_CAPTCHA_CODE'
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы