Curl регистрация, хелп

Discussion in 'PHP' started by qaz, 14 Jan 2012.

  1. qaz

    qaz Elder - Старейшина

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    Всем привет, нужна помошь, я пишу сккрипт авторегера, но он не пашет, я передаю полностью все пост параметры которые есть на странице но наверно чегото в нём не хватает.
    я пытался проснифать через httpfox пост параметры но всё без успешно :( , кто может помочь?
    аот сам скрипт.

    PHP:
    <?

    $cur=curl_init();       
    curl_setopt($curCURLOPT_URL"http://fotostrana.ru/signup/");    
    curl_setopt($cur,CURLOPT_USERAGENT,"Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.8.131 Version/11.10");    
    curl_setopt($cur,CURLOPT_COOKIEJAR,'cookie.txt');       
    curl_setopt($cur,CURLOPT_COOKIEFILE,'cookie.txt');      
    curl_setopt($cur,CURLOPT_RETURNTRANSFER,1);         
    $str curl_exec($cur);   
    curl_close($cur); 



    $massiv_name = array(=> 'Маша'"Катя"'Марина''Анжела''Кира''Юля''Саша''Света''Наташа''Лена''Люда''Валентина''Ксюня''Алёна');
    $rand_num_name rand(1,13);
    $ok_rand_name "$massiv_name[$rand_num_name]";
    // Выбрали случайное ИМя

    $birthDay rand(1,31);
    $birthMonth =  rand(1,12);
    $birthYear rand(19921997);
    $randdata "user_birthday_day=$birthDay&user_birthday_month=$birthMonth&user_birthday_year=$birthYear";

    // Выбираем рандомную дату


    $massiv_post = array(=> "$ok_rand_name","[email protected]""1234567890");





    preg_match_all("/<input(.*?)\/>/",$str,$pars_1);
    $post_hidden "";
    $post_text "";
    $i "0";
    foreach(
    $pars_1[0] as $pars_2)
    {
    if(
    preg_match("/hidden/",$pars_2))
    {
    preg_match("/name=\"(.*?)\"/",$pars_2,$pars_one_name);
    preg_match("/value=\"(.*?)\"/",$pars_2,$pars_one_value);
    $post_hidden .= $pars_one_name[1]."=".$pars_one_value[1]."&";
    }
    elseif(
    preg_match("/type=\"text\"|type=\"password\"/",$pars_2))
    {
    preg_match("/name=\"(.*?)\"/",$pars_2,$pars_two_name);


    $post_text .= $pars_two_name[1]."=".$massiv_post[$i]."&";
    $i++;
    }
    }
     
    $curl_post $post_hidden.$post_text."user_sex=w&".$randdata."&terms_agree=checked&tk=3mp&dudewhereismycar=0";

    // заполняем получаем все переменные для пост запроса



    echo  $curl_post;


      

    $cur=curl_init();       
    curl_setopt($curCURLOPT_URL"http://fotostrana.ru/signup/");    
    curl_setopt($cur,CURLOPT_USERAGENT,"Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.8.131 Version/11.10");    
    curl_setopt($cur,CURLOPT_COOKIEJAR,'cookie.txt');       
    curl_setopt($cur,CURLOPT_COOKIEFILE,'cookie.txt');      
    curl_setopt($cur,CURLOPT_RETURNTRANSFER,1);       
    curl_setopt($curCURLOPT_POST1);         
    curl_setopt($curCURLOPT_POSTFIELDS"$curl_post");    
    $doc curl_exec($cur);   
    curl_close($cur); 

    echo 
    $doc;

    ?>
     
  2. justonline

    justonline network ninja

    Joined:
    27 Jul 2011
    Messages:
    499
    Likes Received:
    60
    Reputations:
    53
    от одним местом чую...что это из-за русских букв. может лучше в шифрованом виде?

    Сорь Тс, у меня вопрос, Запостю тут.

    Могу ли я в контексте объявления curl_init для одной переменной открывать разные странички через CURLOPT_URL?
     
    #2 justonline, 14 Jan 2012
    Last edited: 14 Jan 2012
  3. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    проверьте у вас все данные отсылаются. У вас dudewhereismycar = 0

    Code:
    http://fotostrana.ru/signup/
    
    POST /signup/ HTTP/1.1
    Host: fotostrana.ru
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0.1) Gecko/20100101 Firefox/8.0.1
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate
    Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
    Connection: keep-alive
    Referer: http://fotostrana.ru/signup/
    Cookie: source=175; inv_source=land2; mrc=app_id%3D554108%26is_app_user%3D0; __utma=112732955.243275867.1326505893.1326505893.1326505893.1; __utmb=112732955.1.10.1326505893; __utmc=112732955; __utmz=112732955.1326505893.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
    Content-Type: multipart/form-data; boundary=---------------------------41184676334
    Content-Length: 1513
    -----------------------------41184676334
    Content-Disposition: form-data; name="l_source"
    
    
    -----------------------------41184676334
    Content-Disposition: form-data; name="ftoken-fSignup"
    
    e688ca744e
    -----------------------------41184676334
    Content-Disposition: form-data; name="redirect_url"
    
    
    -----------------------------41184676334
    Content-Disposition: form-data; name="submitted"
    
    1
    -----------------------------41184676334
    Content-Disposition: form-data; name="user_name"
    
    b3ldkklsdsldksdlkb3
    -----------------------------41184676334
    Content-Disposition: form-data; name="user_sex"
    
    m
    -----------------------------41184676334
    Content-Disposition: form-data; name="user_birthday_day"
    
    17
    -----------------------------41184676334
    Content-Disposition: form-data; name="user_birthday_month"
    
    4
    -----------------------------41184676334
    Content-Disposition: form-data; name="user_birthday_year"
    
    1980
    -----------------------------41184676334
    Content-Disposition: form-data; name="user_email"
    
    [email protected]
    -----------------------------41184676334
    Content-Disposition: form-data; name="user_password"
    
    10474583hfuidf
    -----------------------------41184676334
    Content-Disposition: form-data; name="terms_agree"
    
    on
    -----------------------------41184676334
    Content-Disposition: form-data; name="tk"
    
    4700
    -----------------------------41184676334
    Content-Disposition: form-data; name="dudewhereismycar"
    
    2919639468292
    -----------------------------41184676334--
    
    HTTP/1.1 302 Found
    Server: nginx/1.0.4
    Date: Sat, 14 Jan 2012 01:52:20 GMT
    Content-Type: text/html
    Connection: keep-alive
    X-Powered-By: PHP/5.3.5
    Expires: Thu, 01 Jan 1970 00:00:01 GMT
    Last-Modified: Sat, 14 Jan 2012 01:52:19 GMT
    Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Pragma: no-cache
    Set-Cookie: vir_reg=deleted; expires=Fri, 14-Jan-2011 01:52:19 GMT; path=/; domain=.fotostrana.ru
    Set-Cookie: uid=49985794; expires=Mon, 23-Apr-2012 01:52:20 GMT; path=/; domain=.fotostrana.ru
    Set-Cookie: hw=e96a73314c4332083677b3f081e6d22119; expires=Mon, 23-Apr-2012 01:52:20 GMT; path=/; domain=.fotostrana.ru
    Location: /?isRegisterSuccess=true
    Content-Length: 0
    
     
  4. qaz

    qaz Elder - Старейшина

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75

    таксс, первое что у меня не так было ето terms_agree" стояло checked исправил на on

    дальше у вас tk = 4700 а dudewhereismycar = 2919639468292

    хотя в пост данных формы они имеют значения
    name="tk" value="3mp"
    name="dudewhereismycar" value="0"

    может при нажатии на сабмит там джава скриптом ети знаечения меняются на другие?? или как ещо можно обьяснить разницу??
    и чем вы отснифали заголовки?

    честно, незнаю
     
    #4 qaz, 14 Jan 2012
    Last edited: 14 Jan 2012
  5. Flisk

    Flisk Member

    Joined:
    4 Aug 2010
    Messages:
    147
    Likes Received:
    8
    Reputations:
    -2
    Думаю, что можно.