Curl

Тема в разделе "PHP программирование", создана пользователем DNTS, 19 янв 2011.

  1. DNTS

    DNTS Гость

    Здравствуйте, вот какая проблема - нужно с помощью curl авторизироваться на сайте и отправить сообщение в чат(онлайн-игра). Нашел 2 функции:
    Код (PHP):
    function get_web_page( $url )
    {
    $uagent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)";

    $ch = curl_init( $url );
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  // возвращает веб-страницу
    curl_setopt($ch, CURLOPT_HEADER, 0);          // не возвращает заголовки
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);  // переходит по редиректам
    curl_setopt($ch, CURLOPT_ENCODING, "");     // обрабатывает все кодировки
    curl_setopt($ch, CURLOPT_USERAGENT, $uagent); // useragent
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120); // таймаут соединения
    curl_setopt($ch, CURLOPT_TIMEOUT, 120);     // таймаут ответа
    curl_setopt($ch, CURLOPT_MAXREDIRS, 10);      // останавливаться после 10-ого редиректа
    curl_setopt($ch, CURLOPT_COOKIEJAR, "coo.txt");
    curl_setopt($ch, CURLOPT_COOKIEFILE,"coo.txt");

    $content = curl_exec( $ch );
    $err     = curl_errno( $ch );
    $errmsg = curl_error( $ch );
    $header = curl_getinfo( $ch );
    curl_close( $ch );

    $header['errno']  = $err;
    $header['errmsg'] = $errmsg;
    $header['content'] = $content;
    return $header;
    }

    function post_content ($url,$postdata) {
    $uagent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)";

    $ch = curl_init( $url );
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_ENCODING, "");
    curl_setopt($ch, CURLOPT_USERAGENT, $uagent); // useragent
    curl_setopt($ch, CURLOPT_TIMEOUT, 120);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
    curl_setopt($ch, CURLOPT_COOKIEJAR, "coo.txt");
    curl_setopt($ch, CURLOPT_COOKIEFILE,"coo.txt");

    $content = curl_exec( $ch );
    $err     = curl_errno( $ch );
    $errmsg = curl_error( $ch );
    $header = curl_getinfo( $ch );
    curl_close( $ch );

    $header['errno']  = $err;
    $header['errmsg'] = $errmsg;
    $header['content'] = $content;
    return $header;
    }

    $url = 'http://capitalcity.oldbk.com/enter.php';
    $username = 'Левчик';
    $userpass = '*******';
    // формируем строку с данными
    $postdata = 'login='.$username.'&psw='.$userpass;

    $result = post_content( $url, $postdata );
    $html = $result['content'];

    // загружаем любую другую страницу. Пользователь, под логином которого вошли, должен сохраниться
    $url = 'http://capitalcity.oldbk.com/main.php';
    // $url = "http://capitalcity.oldbk.com/ch.php?color=000000&sys=&om=&lid=&text=private [Мергахеф] gh";
    $result = get_web_page( $url );
    $html = $result['content'];

    $pos = StrPos($html,"Левчик");
    if ( $pos === false ) {
    echo 'Авторизация провалилась';
    }
    else {
    $msg = "private [Мергахеф] gh";
    echo 'Авторизация прошла успешно';echo "<img src='http://capitalcity.oldbk.com/ch.php?color=000000&sys=&om=&lid=&text=".$msg."' width=0 height=0 border=0>";
    }
    ?>
    если заходить на $url = 'http://capitalcity.oldbk.com/main.php'; после авторизации и вывести контент - то все работает, но если пойти на $url = "http://capitalcity.oldbk.com/ch.php?color=000000&sys=&om=&lid=&text=private [Мергахеф] gh"; - для отправки сообщения при отображении контента пишет 400 Bad Request, также пробуя через вставку картинки echo "<img src='http://capitalcity.oldbk.com/ch.php?color=000000&sys=&om=&lid=&text=".$msg."' width=0 height=0 border=0>"; - также не дает результат.
    Заранее благодарен.
     
Загрузка...
Похожие Темы - Curl
  1. sasha465
    Ответов:
    0
    Просмотров:
    3.558
  2. VadikV
    Ответов:
    4
    Просмотров:
    4.208
  3. vital
    Ответов:
    0
    Просмотров:
    1.586
  4. admin
    Ответов:
    1
    Просмотров:
    4.725

Поделиться этой страницей