[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. M1lten

    M1lten New Member

    Joined:
    18 Dec 2010
    Messages:
    35
    Likes Received:
    0
    Reputations:
    0
    Осваиваю Curl, написал скрипт авторизации, но он не работает =(
    Помогите разобраться, что сделал не так?)


    PHP:
    <?php
    $nick
    =testcurl;
    $pass=1q2w3e4r5t6y;
    $post_auth "Login=".$nick."Password=".$pass;

    $ch curl_init();

    curl_setopt($chCURLOPT_URL'http://win.mail.ru/cgi-bin/auth');
    curl_setopt($chCURLOPT_COOKIEJAR'cook.txt');
    curl_setopt($chCURLOPT_COOKIEFILE'cook.txt');
    curl_setopt($chCURLOPT_USERAGENT"Opera/10.00 (Windows NT 5.1; U; ru)");
    curl_setopt($chCURLOPT_REFERER'http://www.mail.ru');
    curl_setopt($chCURLOPT_TIMEOUT,3); 
    curl_setopt($chCURLOPT_POSTtrue);

    curl_setopt($chCURLOPT_POSTFIELDS$post_auth);
    curl_setopt($chCURLOPT_SSL_VERIFYPEER0);
    curl_setopt($chCURLOPT_SSL_VERIFYHOST0);
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    $out curl_exec($ch);
    echo 
    $out;
    ?>
     
    #18461 M1lten, 19 May 2011
    Last edited: 19 May 2011
  2. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Не туда отправляешь данные для авторизации.
    http://win.mail.ru/cgi-bin/auth
    через get тоже работает.
     
    #18462 AnGeI, 19 May 2011
    Last edited: 19 May 2011
  3. M1lten

    M1lten New Member

    Joined:
    18 Dec 2010
    Messages:
    35
    Likes Received:
    0
    Reputations:
    0
    AnGeI, не, даже не в этом дело.. Я на разных сайтах пробовал, просто для удобства зарегал почтовик и на майл кинул... После захода на страницу она пустая. Файл с куками тоже пуст =( Если есть возможность, то можно проверить, ящик в коде валидный...
     
  4. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    отправляй по-больше заголовков.

    response_header

    Code:
    Array
    (
        [0] => HTTP/1.1 302 OK
        [1] => Server: nginx/0.7.62
        [2] => Date: Thu, 19 May 2011 14:40:59 GMT
        [3] => Content-Type: text/plain
        [4] => Connection: close
        [5] => Set-Cookie: t=obLD1AAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAACAAAEBrQcA; expires=Tue, 15 Nov 2011 14:40:59 GMT; path=/; domain=.mail.ru
        [6] => Set-Cookie: Mpop=1305816059:7e5e47417f010d50190502190f1d00071c050b0b4966535c465d05080c050416037501164d5d42445242475b145c555e551f4243:[email protected]:; expires=Wed, 17 Aug 2011 14:40:59 GMT; path=/; domain=.mail.ru
        [7] => Location: http://e.mail.ru/cgi-bin/msglist?back=1
        [8] => Set-Cookie: mrcu=98F74DD52BFB0F21217A0100007F; expires=Sun, 16 May 2021 14:40:59 GMT; path=/; domain=.mail.ru
        [9] => Content-Length: 0
        [10] => X-Host: f172.mail.ru
        [11] => HTTP/1.1 302 OK
        [12] => Server: nginx/0.7.62
        [13] => Date: Thu, 19 May 2011 14:40:59 GMT
        [14] => Content-Type: text/plain
        [15] => Connection: close
        [16] => Location: http://e.mail.ru/cgi-bin/login
        [17] => Set-Cookie: mrcu=E6D64DD52BFB2FA4E9990100007F; expires=Sun, 16 May 2021 14:40:59 GMT; path=/; domain=.mail.ru
        [18] => Content-Length: 0
        [19] => X-Host: f179.mail.ru
        [20] => X-XSS-Protection: 0
        [21] => HTTP/1.1 200 OK
        [22] => Server: nginx/0.7.62
        [23] => Date: Thu, 19 May 2011 14:40:59 GMT
        [24] => Content-Type: text/html; charset=utf-8
        [25] => Connection: close
        [26] => Pragma: no-cache
        [27] => Cache-Control: no-cache, no-store
        [28] => Expires: Thu, 19 May 2011 14:40:59 GMT
        [29] => Frontend-key: 217.69.128.155
        [30] => P3P: policyref="/w3c/p3p.xml", CP="NON CUR ADM DEV PSA PSD OUR IND UNI NAV INT STA"
        [31] => Set-Cookie: mrcu=1A704DD52BFB7C946D6E25662E4E; path=/; expires=Fri, 18 Jul 2036 13:20:00 GMT; domain=.mail.ru
        [32] => X-Host: f222.mail.ru
        [33] => X-XSS-Protection: 0
    )
    Список писем:
    http://e.mail.ru/cgi-bin/msglist?back=1
     
    #18464 AnGeI, 19 May 2011
    Last edited: 19 May 2011
  5. M1lten

    M1lten New Member

    Joined:
    18 Dec 2010
    Messages:
    35
    Likes Received:
    0
    Reputations:
    0
    AnGeI, А как именно отправлять больше, и чего именно в них должно быть больше? Поиграл с заголовками, но все тоже, тустая страница, и пустой файл с куками =(
     
  6. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Code:
    "User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1".
    				"Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5".
    				"Accept-Language: en-us,en;q=0.5".
    				"Accept-Charset: windows-1251,ISO-8859-1,utf-8;q=0.7,*;q=0.7".
    				"Content-Type: application/x-www-form-urlencoded".
    				"Referer: http://mail.ru"
    Может быть курл недоступен/не установлен?
    Можно попробовать через steam_context
     
    #18466 AnGeI, 19 May 2011
    Last edited: 19 May 2011
  7. Fepsis

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

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    M1lten, может не

    $post_auth = "Login=".$nick."Password=".$pass;

    а

    $post_auth = "Login=".$nick."&Password=".$pass;
     
  8. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    НTL Ищите среди заголовков Transfer-Encoding: chunked. А потом гуглите про chunked transfer encoding
     
    _________________________
    1 person likes this.
  9. M1lten

    M1lten New Member

    Joined:
    18 Dec 2010
    Messages:
    35
    Likes Received:
    0
    Reputations:
    0
    Fepsis, дело в том что если данные вносить в переменную, то вообще ничего не происходит... Хотя это наверное моя ошибка...
    Сейчас происходит запить кукисов, в файл код:
    PHP:
    <?php
    //$nick=testcurl;
    //$pass=1q2w3e4r5t6y;
    //$post_auth = "Login=".$nick."Password=".$pass;
    //$post_auth = "Login=".$nick."&Password=".$pass;

    $ch curl_init();

    curl_setopt($chCURLOPT_URL'http://win.mail.ru/cgi-bin/auth');
    curl_setopt($chCURLOPT_COOKIEJAR'cook.txt');
    curl_setopt($chCURLOPT_COOKIEFILE'cook.txt');
    curl_setopt($chCURLOPT_USERAGENT"Opera/10.00 (Windows NT 5.1 U ru)");
    curl_setopt($chCURLOPT_REFERER'http://www.mail.ru');
    curl_setopt($chCURLOPT_TIMEOUT,3); 
    curl_setopt($chCURLOPT_POSTtrue);

    curl_setopt($chCURLOPT_POSTFIELDS"Login=testcurl&Password=1q2w3e4r5t6y");
    curl_setopt($chCURLOPT_SSL_VERIFYPEER0);
    curl_setopt($chCURLOPT_SSL_VERIFYHOST0);
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    $out curl_exec($ch);
    echo 
    $out;
    curl_close($ch);
    ?>
    НО, все так же белая страница, а в тексотом файле, всего лишь такая запись:
    А если обращаюсь не к http://win.mail.ru/cgi-bin/auth, а к просто к http://www.mail.ru , то отображается главная страница майл.ру и в файл пишется:
     
    #18469 M1lten, 20 May 2011
    Last edited: 20 May 2011
  10. M1lten

    M1lten New Member

    Joined:
    18 Dec 2010
    Messages:
    35
    Likes Received:
    0
    Reputations:
    0
    Разобрался, авторизация проходит успешно...
    Кому не сложно прошу помочь со следующим..
    Я авторизован. Теперь мне нужно перейти пост запросом на страницу main.php(т.к. если переходить гетом, юзер разлогинется), узнать, есть ли в исходном коде допустим значение 123456, ну как найти проблемы не составит, со строковыми ф-к я вроде как дружу)) Но вот как это реализовать, что бы сделать проверку на наличие значения в исходнике? После того, если это значение существует, перейти на страницу main2.php, тоже пост запросом...
     
    #18470 M1lten, 20 May 2011
    Last edited: 20 May 2011
  11. randman

    randman Members of Antichat

    Joined:
    15 May 2010
    Messages:
    1,366
    Likes Received:
    610
    Reputations:
    1,101
    Регулярки. Для начала можешь почитать на validweb.ru в разделе PHP, там тема закреплённая. Ссылку щас дать не могу, поскольку сайт что то не работает.
     
    #18471 randman, 20 May 2011
    Last edited: 20 May 2011
  12. M1lten

    M1lten New Member

    Joined:
    18 Dec 2010
    Messages:
    35
    Likes Received:
    0
    Reputations:
    0
    XAMEHA, спс. Регулярками я-то смогу узнать те ссылки и значения в исходнике. Но, вот как в него глянуть? Можно в принципе курлом сохранить страницу, а потом заюзать поиск в файле, но хотелось бы что-то менее геморное =)
     
  13. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    Есть переменная с бинарными данными, как дописать туда свою сотню байт?
     
  14. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    НTL php.net/pack, php.net/unpack Или же работайте как с обычной строкой

    M1lten для авторизации на мейл.ру требовалось раньше указание домена, которому принадлежит почта - вы уверены что логина и пароля достаточно для авторизации?

    Попробуйте посмотреть примеры, как используется курл, прежде чем писать с помощью него что-то
     
    _________________________
    #18474 Gifts, 20 May 2011
    Last edited: 20 May 2011
  15. Fepsis

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

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Вопрос не совсем по PHP, но чтобы не создавать лишних тем спрошу тут...

    В общем необходимо контролировать точное время на сайте, время сервера не всегда соответствует точному времени... Поэтому интересует какой-нибудь сторонний сервер, с запросом на который можно получить точное время...

    то есть, что-то вроде этого: http://www.direct-time.ru/

    я вот только не уверен в надёжности этих данных, ну и может есть что-то по удобнее...


    UPD

    Вот в принципе на том же самом http://www.direct-time.ru/ в заголовках ответа выдаёт то что нужно:
    Date=Sat, 21 May 2011 10:28:45 GMT

    ХЗ только, там действительно точное время и оно стабильно..?!
     
    #18475 Fepsis, 21 May 2011
    Last edited: 21 May 2011
  16. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Fepsis http://phpclub.ru/faq/NTP
     
    _________________________
    1 person likes this.
  17. Fepsis

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

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Gifts, не пашет что-то.. Пробовал даже другие NTP-серваки с соответствующими портами скрипту кормить, всё равно: "unable to connect to..."

    Да в общем пофигу, выдерну время из заголовков direct-time.ru...

    Спасибо!
     
  18. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Fepsis да, действительно, просто там немного не NTP протокол, а daytime. Вот список серверов под эту функцию: http://tf.nist.gov/tf-cgi/servers.cgi

    PHP:
    function sinctimestamp($host) {
      if (!
    $fp fsockopen($host,13,$errno,$errstr,1)) return false;
      
    $s strtotime(fgets($fp));
      
    fclose($fp);
      return 
    $s;
    }

    echo 
    date('r'sinctimestamp('nist.netservicesgroup.com'));
     
    _________________________
  19. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    Как можно узнать что header() установился правильно и не выдал ошибку?
     
  20. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    НTL вам скорее всего это знать не нужно, но если очень хочется - http://php.net/headers_list
     
    _________________________
Thread Status:
Not open for further replies.