$url = "http://xuite.net/members/miniLogin.php?final=http://xuite.net";
$login_url = "https://member.xuite.net/HiReg/multiauthentication";
$uid = "uid";
$pw = "pw";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
$content = curl_exec($ch);
$start=strpos($content,"src")+5;
$end=strpos($content,"'",$start);
$url = substr($content,$start,$end-$start);
curl_setopt($ch, CURLOPT_URL, $url);
$content = curl_exec($ch);
curl_close ($ch);
// 為了模擬登入時, post 的資料, 所以先取得這些資料
$version = find_input_value("version",$content);
$curl = find_input_value("curl",$content);
$siteid = find_input_value("siteid",$content);
$sessionid = find_input_value("sessionid",$content);
$channelurl = find_input_value("channelurl",$content);
$others = find_input_value("others",$content);
$checksum = find_input_value("checksum",$content);
$service_type = find_input_value("service_type",$content);
$cp_reg_info = find_input_value("cp_reg_info",$content);
$reg_url = find_input_value("reg_url",$content);
$finish_channelurl = find_input_value("finish_channelurl",$content);
$formtype = find_input_value("formtype",$content);
$sso = find_input_value("sso",$content);
$cssurl = find_input_value("cssurl",$content);
$post_data = array(
"uid"=>$uid,
"pw"=>$pw,
"version"=>$version,
"curl"=>$curl,
"siteid"=>$siteid,
"sessionid"=>$sessionid,
"channelurl"=>$channelurl,
"others"=>$others,
"checksum"=>$checksum,
"service_type"=>$service_type,
"cp_reg_info"=>$cp_reg_info,
"reg_url"=>$reg_url,
"finish_channelurl"=>$finish_channelurl,
"formtype"=>$formtype,
"sso"=>$sso,
"cssurl"=>$cssurl,
);
// var_dump($post_data);
// cURL($url, $header=NULL, $p=NULL)
// 對 login_url 發送剛剛記錄的資料 & 帳號密碼 (記錄cookie)
$a= cURL ($login_url,false,$post_data);
// 因為有使用剛剛記錄 cookie, 所以直接導回 xuite 即可
echo cURL("http://xuite.net", false, null);
function find_input_value($name,$content){
$start = strpos($content, "name=\"$name");
$start=strpos($content,"value",$start)+7; // +7 是因為 value=" 長度為7
$end=strpos($content,"\"",$start);
$value = substr($content,$start,$end-$start);
return $value;
}
function cURL($url, $header=NULL, $p=NULL)
{
$ch = curl_init();
$cookie_file = './cookie.txt';
curl_setopt($ch, CURLOPT_HEADER, $header);
// curl_setopt($ch, CURLOPT_NOBODY, $header);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
// curl_setopt($ch, CURLOPT_COOKIE, $cookie);
// 將 cookie 儲存
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
// 使用這個 cookie
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $p);
$result = curl_exec($ch);
if ($result) {
return $result;
} else {
return curl_error($ch);
}
curl_close($ch);
}
2012年7月24日 星期二
curl 登入 xuite (研究中...)
目前還是失敗的..
還在研究為什麼= =
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言