За последние 24 часа нас посетили 73994 программиста и 1650 роботов. Сейчас ищут 1044 программиста ...

Curl и https://

Тема в разделе "PHP для новичков", создана пользователем Neka, 27 янв 2011.

  1. Neka

    Neka Активный пользователь

    С нами с:
    16 янв 2010
    Сообщения:
    188
    Симпатии:
    0
    Здравствуйте!
    Мне нужно залогинится на сайте, который идет по https:// и получить первую страницу.
    Вот заголовки:
    Вот так я наиммитировал в PHP на курлах:
    PHP:
    1. <?php$url = "https://neededsite.ru/cgi-bin/afgg";
    2.   $ch = curl_init();
    3.  
    4.   curl_setopt ($ch, CURLOPT_HEADER, 1);
    5.   curl_setopt ($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3');
    6.   curl_setopt ($ch, CURLOPT_REFERER, 'https://neededsite.ru/cgi-bin/afgg');
    7.   curl_setopt($ch, CURLOPT_URL,$url); // set url to post to
    8.   curl_setopt($ch, CURLOPT_FAILONERROR, 1);
    9.   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    10.   curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    11.   curl_setopt($ch, CURLOPT_HTTPHEADER, 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8');
    12.   curl_setopt($ch, CURLOPT_HTTPHEADER, 'Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3');
    13.   curl_setopt($ch, CURLOPT_HTTPHEADER, 'Accept-Encoding: gzip,deflate');
    14.   curl_setopt($ch, CURLOPT_HTTPHEADER, 'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7');
    15.   curl_setopt($ch, CURLOPT_HTTPHEADER, 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8');
    16.   curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);// allow redirects
    17.   curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable
    18.   curl_setopt($ch, CURLOPT_TIMEOUT, 30); // times out after 4s
    19.   curl_setopt($ch, CURLOPT_POST, 1); // set POST method
    20.   curl_setopt($ch, CURLOPT_POSTFIELDS, "login=login&password=password&cmd=login"); // add POST fields
    21.   $result = curl_exec($ch); // run the whole process
    22.   curl_close($ch);  
    23.   echo $result;  
    И он мне выдает на попытку вытащить страницу:
    Круто, всегда мечтал стырить начальную страницу апача! =)))

    Подскажите, пожалуйста, как мне имитировать верхние заголовки правильно для нужного результата.
     
  2. Devzirom

    Devzirom Активный пользователь

    С нами с:
    15 фев 2009
    Сообщения:
    463
    Симпатии:
    0
    Адрес:
    Пермь
    Вы уверены что эти заголовки вообще нужно отправлять? К тому же вы их неправильно задаёте, опция CURLOPT_HTTPHEADER принимает только массив

    Вы уверены что эти параметры необходимы?

    Для того чтобы авторизоваться нужно начать сессию, но если нет кук - то и сессии нет!

    Посмотрите тему: http://www.php.ru/forum/viewtopic.php?t=30231

    В последнем моём посту выложен рабочий пример авторизации на mail.ru
     
  3. Neka

    Neka Активный пользователь

    С нами с:
    16 янв 2010
    Сообщения:
    188
    Симпатии:
    0
    Не уверен, пытаюсь полностью повторить отправляемые заголовки.

    Нет, не уверен, но CURLOPT_SSL_VERIFYPEER и CURLOPT_SSL_VERIFYHOST вроде как отвечают за сертефикацию сайта в браузере, т.е. отключаем. по остальному см. выше.

    Пробовал с браузером с отключенными куками, все работает на ура, принятых куков как видите в заголовке нет. Как там происходит сессия, я к сожалению незнаю

    Видел, пробовал - не работает на моем примере, поковыряю еще, может заработает.
     
  4. Devzirom

    Devzirom Активный пользователь

    С нами с:
    15 фев 2009
    Сообщения:
    463
    Симпатии:
    0
    Адрес:
    Пермь
    дайте ссылку на страницу с формой, откуда идет авторизация
     
  5. Neka

    Neka Активный пользователь

    С нами с:
    16 янв 2010
    Сообщения:
    188
    Симпатии:
    0
    К сожалению не могу, она является внутренним ресурсом городской сети, если понадобиться какая-либо инфа о ней, скажите, достану..)