авторизация и постинг curl'ом на форуме SMF

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

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

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    Помогите авторизоваться на SMF!!! все вроде правильно составил- отследил отсылаемые данные, составил запрос, вытащил сессию. не работает! :bc:
    PHP:
    <?
    set_time_limit(0);
    ini_set('display_errors',1);  error_reporting(E_ALL); 

    $login='Nulls';
    $password='Nulled';

     
    $agent 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7'
      
    $header[] = "Accept: text/html;q=0.9, text/plain;q=0.8, image/png, */*;q=0.5" 
      
    $header[] = "Accept_charset: windows-1251, utf-8, utf-16;q=0.6, *;q=0.1"
      
    $header[] = "Accept_encoding: identity"
      
    $header[] = "Accept_language: en-us,en;q=0.5"
      
    $header[] = "Connection: close"
      
    $header[] = "Cache-Control: no-store, no-cache, must-revalidate"
      
    $header[] = "Keep_alive: 300"
      
    $header[] = "Expires: Thu, 01 Jan 1970 00:00:01 GMT"

    $forum_url='http://forum.mazzako.com';
     
    $ch curl_init();  
     
    curl_setopt($chCURLOPT_URL,$forum_url);  
      
    //curl_setopt($ch, CURLOPT_HEADER, 1); 
      //curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
      
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);  
     
    // curl_setopt($ch, CURLOPT_TIMEOUT, 30); 
      //curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);  
     // curl_setopt($ch, CURLOPT_POST, 1); 
     //curl_setopt($ch, CURLOPT_POSTFIELDS, $query_str); 
      
    curl_setopt $ch CURLOPT_USERAGENT $agent); 
     
    // curl_setopt ( $ch , CURLOPT_HTTPHEADER , $header); 
     //curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); 
     //curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); 
      
    echo $text curl_exec($ch); 
      
    curl_close ($ch);

      
    preg_match("&PHPSESSID=(.+)\&amp;&"$text$matches); if(isset($matches[1])) $sid=$matches[1];

    //Avtorize
    $query = array ( 
        
    'user' => $login,
        
    'passwrd' => $password,
        
    'cookielength'=> '60',
        
    'cookieneverexp'=>'on',
      ); 
      
    $query_str http_build_query($query); 

      echo 
    $url $forum_url.'/index.php?PHPSESSID='.$sid.'&action=login2'


      
    $ch curl_init();  
      
    curl_setopt($chCURLOPT_URL,$url);  
      
    curl_setopt($chCURLOPT_HEADER1); 
      
    curl_setopt($chCURLOPT_FOLLOWLOCATION1); 
      
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);  
      
    curl_setopt($chCURLOPT_TIMEOUT30); 
      
    curl_setopt ($chCURLOPT_SSL_VERIFYPEERFALSE);  
      
    curl_setopt($chCURLOPT_POST1); 
      
    curl_setopt($chCURLOPT_POSTFIELDS$query_str); 
      
    curl_setopt $ch CURLOPT_USERAGENT $agent); 
      
    curl_setopt $ch CURLOPT_HTTPHEADER $header); 
      
    curl_setopt($chCURLOPT_COOKIEJAR'cookie.txt'); 
      
    curl_setopt($chCURLOPT_COOKIEFILE'cookie.txt'); 
      echo 
    $text curl_exec($ch); 
      
    curl_close($ch);

    ?>
     
  2. Alix

    Alix

    Регистр.:
    27 янв 2008
    Сообщения:
    234
    Симпатии:
    84
    PHP:
    <?
        
    set_time_limit(0);
        
    ini_set('display_errors'1);  
        
    error_reporting(E_ALL);
        
    $login='MyLogin'//логин-пасс из примера уже не рабочие :)
        
    $password='MyPassword';
        
    $agent 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7';
    //Avtorize
        
    $query = array (
            
    'user' => $login,
            
    'passwrd' => $password,
            
    'cookielength'=> '60',
            
    'hash_passwrd='=>'',
        );
          
    $query_str http_build_query($query);
          
    $url 'http://forum.mazzako.com/index.php?action=login2';
        
    $ch curl_init();
        
    curl_setopt($chCURLOPT_URL$url);
        
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
        
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);
        
    curl_setopt($chCURLOPT_TIMEOUT30);
        
    curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
    curl_setopt($chCURLOPT_POST1);
        
    curl_setopt($chCURLOPT_POSTFIELDS$query_str);
        
    curl_setopt($chCURLOPT_USERAGENT $agent);
        
    curl_setopt($chCURLOPT_COOKIEJAR'cookie.txt');
        echo 
    $text curl_exec($ch);
        
    curl_close($ch);
    ?>
     
    phillip и PromoFreem нравится это.
  3. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    логин и пасс мой подходит, просто пасс написал с большой буквы. надо было с малой (счас исправлю первый меседж). а вот еще что. создаю тему в файрфоксе и обычно то приходится составлять массив. ну вот допустим для буллетина я составлял запрос, в котором одна переменная- заголовок, другая- контент темы, третья- номер юзера который постит и тд.
    а тут- все в одном как-то. не понимаю. вот что показывает перехватчик данных в мозилле: передается только $_POST['post_data'] и равна она
    PHP:
    -----------------------------1194248275436\r\nContent-Dispositionform-dataname="topic"\r\n\r\n0\r\n-----------------------------1194248275436\r\nContent-Dispositionform-dataname="subject"\r\n\r\nMY TOPIC NAME\r\n-----------------------------1194248275436\r\nContent-Dispositionform-dataname="icon"\r\n\r\nxx\r\n-----------------------------1194248275436\r\nContent-Dispositionform-dataname="message"\r\n\r\nMY TOPIC CONTENT!!! \r\n-----------------------------1194248275436\r\nContent-Dispositionform-dataname="notify"\r\n\r\n0\r\n-----------------------------1194248275436\r\nContent-Dispositionform-dataname="lock"\r\n\r\n0\r\n-----------------------------1194248275436\r\nContent-Dispositionform-dataname="attachment[]"filename=""\r\nContent-Typeapplication/octet-stream\r\n\r\n\r\n-----------------------------1194248275436\r\nContent-Dispositionform-dataname="post"\r\n\r\nPost\r\n-----------------------------1194248275436\r\nContent-Dispositionform-dataname="additional_options"\r\n\r\n0\r\n-----------------------------1194248275436\r\nContent-Dispositionform-dataname="sc"\r\n\r\n3f11c2cd8795f1543cbd903ac37dc6fb\r\n-----------------------------1194248275436\r\nContent-Dispositionform-dataname="seqnum"\r\n\r\n14287752\r\n-----------------------------1194248275436--\r\n
    Кто сталкивался? как оптимально правильно работать с такими данными? Попробуйте запостить на тот форум и перехватить данные. увидите штуку эту
     
  4. Vegass

    Vegass Писатель

    Регистр.:
    22 окт 2009
    Сообщения:
    7
    Симпатии:
    0
    хм я для phpbb-wap пробовал-все катит.
    Внимательнее смотри заголовки.
     
Статус темы:
Закрыта.