PHP cURL странное поведение - PullRequest
2 голосов
/ 02 июля 2011

Я пытаюсь проанализировать страницу, для которой я должен сначала войти на этот сайт с именем пользователя и паролем. Поэтому я начал со скрипта php cURL для входа на страницу с помощью метода GET, но проблема в том, что я получаю сообщение об ошибке тайм-аута каждый раз, как бы долго я ни устанавливал.

Страница входа: http://myaccount.comeconnect.com/jsp/Login.jsp

URL-адрес, используемый в cURL: http://myaccount.comeconnect.com/servlet/MyAccountLogin?loginMode=2&username=user&password=pass&QuickNavigation=Disabled

с действительными, пользовательскими и передаваемыми значениями.

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

PHP-код не на том же сервере.

Код PHP:

    //create array of data to be posted
    $post_data['loginMode'] = '2';
    $post_data['username'] = $_GET['user'];
    $post_data['password'] = $_GET['pass'];
    $post_data['QuickNavigation'] = "Disabled";

    //traverse array and prepare data for posting (key1=value1)
    foreach ( $post_data as $key => $value) {
        $post_items[] = $key . '=' . $value;
    }

    //create the final string to be posted using implode()
    $post_string = implode ('&', $post_items);
$user = $_GET['user'];
$pass = $_GET['pass'];

//create array of data to be posted

$post_data = array( 'loginMode' => '2',
                    'username' => $user,
                    'password' => $pass,
                    'QuickNavigation' => "Disabled");


//create the final string to be posted using implode()

$post_string = http_build_query($post_data, '', '&');

//Params for cURL

$ckfile = './cookie.txt'; 
$url = 'http://myaccount.comeconnect.com/servlet/MyAccountLogin?'.$post_string;
$timeout=10;
$userAgent= "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1";

//create cURL connection

$ch = curl_init();

    curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT,$timeout); 
    curl_setopt ($ch, CURLOPT_COOKIEJAR, $ckfile);
    $result = curl_exec($ch);

print_r(curl_getinfo($ch));
echo curl_errno($ch) . '-' .curl_error($ch);

curl_close($ch);

echo $result;

1 Ответ

0 голосов
/ 02 июля 2011

Хост myaccount.comeconnect.com, по-видимому, препятствует подключению от не-клиентов.Скорее всего, вы получаете сообщение об ошибке, потому что у вас нет IP-адреса, которому разрешено подключаться, и, к сожалению, нет способа исправить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...