Скрипт, который выполняет авторизацию на стороннем сайте.

Тема в разделе "PHP", создана пользователем whitelex, 27 янв 2010.

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

    whitelex Постоялец

    Регистр.:
    5 апр 2008
    Сообщения:
    59
    Симпатии:
    3
    Хочу доработать парсер, для этого нужно его научить авторизваться на другом сайте и читать скрырый текст. Есть едеи как это сделать?
     
  2. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    curl тебе в помощь
     
  3. whitelex

    whitelex Постоялец

    Регистр.:
    5 апр 2008
    Сообщения:
    59
    Симпатии:
    3
    это не ответ, думаешь я прежде, чем задать не обрыл весь инет? :D

    находил готовые решения, но ничего не работало... показывало пустой экран или ту же страницу для авторизации. Несколько дней на это затратил так ничего и не получилось! :(
     
  4. Alix

    Alix

    Регистр.:
    27 янв 2008
    Сообщения:
    234
    Симпатии:
    84
    Пример используемого кода в студию.
     
  5. Alternator

    Alternator

    Регистр.:
    23 мар 2009
    Сообщения:
    295
    Симпатии:
    145
    cookies-ы пробовали использовать?
    если да, то покажите сайт, и ваш код.
    телепаты в отпуске
    CURL+cookies работает для большинства авторизаций
     
  6. ADyDyka

    ADyDyka Создатель

    Регистр.:
    19 янв 2010
    Сообщения:
    26
    Симпатии:
    5
    Ставишь какой нить плагин, который тебе читает хедеры, для firefox например live http header или tamper data.
    Заходишь на сайт на котором тебе надо авторизоваться, включаешь плагин. Авторизуешся, смотришь что передается серверу.
    Будет что то типа такого, к примеру /POST login=vasya&pass=q1w2e3&submit=ok

    Копируешь эту строчку в переменную:
    PHP:
    $fields_string 'login=vasya&pass=q1w2e3&submit=ok';

    $ch curl_init();
    curl_setopt_array$ch$options );
    curl_setopt($ch,CURLOPT_URL,'http://site.ru');
    curl_setopt($ch,CURLOPT_POST,count(explode('&',$fields)));    curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
    curl_setopt($ch,CURLOPT_COOKIEJAR$kfName); 
    curl_setopt($ch,CURLOPT_COOKIEFILE$kfName); 
    $result curl_exec($ch);
    В принципе все, после этого у тебя должны в файле сохранится кукисы. Далее через curl считываешь нужные тебе страницы, кукис с авторизацией автоматически передается.
    Единственно надо посмотреть насчет $options для curl, настройки можно попробовать такие:
    PHP:
    $options = array(
            
    CURLOPT_RETURNTRANSFER => true,  
            
    CURLOPT_HEADER         => true,   
            
    CURLOPT_FOLLOWLOCATION => true,
            
    CURLOPT_USERAGENT      => "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 FirePHP/0.3",
            
    CURLOPT_AUTOREFERER    => true,     
            
    CURLOPT_CONNECTTIMEOUT => 120,      
            
    CURLOPT_TIMEOUT        => 120,   
            
    CURLOPT_MAXREDIRS      => 10,
        );
        
     
    linkoman и prof.seo нравится это.
Статус темы:
Закрыта.