curl模拟登录求助, curl达人帮下忙, 谢谢..

<?php
set_time_limit(0);
//$cookfile = tempnam('./temp', 'cookie');
$cookfile = dirname(__FILE__).'/cookie.txt';

// 创建一个新cURL资源
$ch = curl_init();

// 设置URL和相应的选项
$HTTP_REQUEST_HEADER = array(
"method" => "POST", 
"timeout" => 30,
"Content-Type" => "application/x-www-form-urlencoded; charset=UTF-8",
"Referer" => "https://login.vancl.com/Login/Login.aspx?http://my.vancl.com/",
"Client-IP" => "112.4.2.12",
"X-Forwarded-For" => "112.4.2.12",
"Host" => "login.vancl.com"
);

$url = "https://login.vancl.com/Login/XmlCheckUserName.ashx"; 
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.13)");
curl_setopt($ch, CURLOPT_HTTPHEADER, $HTTP_REQUEST_HEADER);
curl_setopt($ch, CURLOPT_POSTFIELDS, "LoginUserName=ccsdn@csdn.net&Loginasync=true&UserPassword=ccsdn@csdn.net");  
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookfile); // 连接断开后保存cookie
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookfile); // cookie 写入文件
curl_setopt($ch, CURLOPT_COOKIESESSION, 1); 
//以下为SSL设置
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);

// 抓取URL并把它传递给浏览器
$res = curl_exec($ch);

echo curl_error($ch);

//关闭cURL资源,并且释放系统资源
curl_close($ch);
var_dump( $res); //这里如果登录失败会显示 密码错误, 但是成功的话好像也不返回什么东西?




//上面是模拟登陆的部分, 下面是直接进入一个成功登录之后的页面, 但是却不成功, 如果我把cookie.txt保存到的cookie直接编辑网站的cookie再刷新页面就没问题, 难道是cookie 没发送成功吗?


$ch1 = curl_init();

$url = "http://my.vancl.com/1/Usercenter/Account.aspx"; 

curl_setopt($ch1, CURLOPT_COOKIEFILE, $cookfile);
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, 0); //1 不显示结果页
curl_setopt($ch1, CURLOPT_URL, $url);

$res = curl_exec($ch1);
//关闭cURL资源,并且释放系统资源
curl_close($ch1);
?>

作者: jszjgqq   发布时间: 2011-05-28

登录时获取cookies,登录后发送cookies

后面那部分为何没有发送cookies呢?登录后你看哪页都要发cookies啊,不然对方怎么知道你已经登陆了?

作者: snmr_com   发布时间: 2011-05-28

晕, 大哥麻烦你仔细看看, 我cookie怎么没发送了?

curl_setopt($ch1, CURLOPT_COOKIEFILE, $cookfile);

还是我上面这句发送cookie的写错了?

作者: jszjgqq   发布时间: 2011-05-28

curl_setopt($ch1, CURLOPT_COOKIEFILE, $cookfile);
只是接受 cookie
curl_setopt($ch1, CURLOPT_COOKIEJAR, $cookfile);
才是发送 cookie

作者: xuzuning   发布时间: 2011-05-28

引用 3 楼 xuzuning 的回复:

curl_setopt($ch1, CURLOPT_COOKIEFILE, $cookfile);
只是接受 cookie
curl_setopt($ch1, CURLOPT_COOKIEJAR, $cookfile);
才是发送 cookie


没有用啊, 哪怕都写也没有用哎,3重情况我都测试了,单独写,或者全写都无效. 好心人帮我测试下吧, 上面的帐号密码都写着呢....

作者: jszjgqq   发布时间: 2011-05-28

需要证书?
没做过

作者: xuzuning   发布时间: 2011-05-28

引用 5 楼 xuzuning 的回复:

需要证书?
没做过


no, 不需要的, 现在登陆没问题的, cookie 也都正常, 哎, 看着像是cookie发送不出去似的...

作者: jszjgqq   发布时间: 2011-05-28