PHP cURL的奇怪行为



我正在尝试解析一个页面,对于该页面,我必须首先使用用户名和密码登录该网站。所以我从一个php-cURL脚本开始,使用GET方法登录页面,但问题是,无论我设置了多长的超时时间,我每次都会收到一个超时错误。

登录页面:http://myaccount.comeconnect.com/jsp/Login.jsp

cURL:中使用的URL:http://myaccount.comeconnect.com/servlet/MyAccountLogin?loginMode=2&username=user&password=pass&QuickNavigation=禁用

具有有效、用户和传递值。

现在,当我在浏览器中使用这个URL时,我可以很容易地登录。所以我有点困惑为什么会出现超时错误。

PHP代码不在同一台服务器上。

PHP代码:

//创建要过帐的数据数组$post_data['loginMode']='2';$post_data['username']=$_GET['user'];$post_data['password']=$_GET['pass'];$post_data['QuickNavigation']="已禁用";//遍历数组并准备要过帐的数据(key1=value1(foreach($post_data为$key=>$value({$post_items[]=$key。'='$价值}//使用内爆((创建要发布的最后一个字符串$postrongtring=内爆('&',$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;

主机myaccount.comeconnect.com似乎正在阻止来自非客户的连接。您很可能收到错误,因为您不在允许连接的IP地址上,不幸的是,没有办法解决这个问题。

相关内容

  • 没有找到相关文章

最新更新