這是我的問題。幾個月前,我寫了一個PHP腳本來連接到我的網站上的帳戶。我使用CURL來連接,一切都很好。然後,他們更新了網站,現在我不再能夠連接。問題不在於CURL,因爲我沒有從CURL中得到任何錯誤,但是它是網站本身,它告訴我我無能爲力。無法使用CURL登錄...但不知道爲什麼
這裏是我的腳本:
<?php
require('simple_html_dom.php');
//Getting the website main page
$url = "http://www.kijiji.ca/h-ville-de-quebec/1700124";
$main = file_get_html($url);
$links = $main -> find('a');
//Finding the login page
foreach($links as $link){
if($link -> innertext == "Ouvrir une session"){
$page = $link;
}
}
$to_go = "http://www.kijiji.ca/".$page->href;
//Getting the login page
$main = file_get_html($to_go);
$form = $main -> find("form");
//Parsing the page for the login form
foreach($form as $f){
if($f -> id == "login-form"){
$cform = $f;
}
}
$form = str_get_html($cform);
//Getting my post data ready
$postdata = "";
$tot = count($form->find("input"));
$count = 0;
/*I've got here a foreach loop to find all the inputs in the form. As there are hidden input for security, I make my script look for all the input and get the value of each, and then add them in my post data. When the name of the input is emailOrNickname or password, I enter my own info there, then it gets added to the post data*/
foreach($form -> find("input") as $input){
$count++;
$postdata .= $input -> name;
$postdata .= "=";
if($input->name == "emailOrNickname"){
$postdata.= "my email address ";
}else if($input->name == "password"){
$postdata.= "my password";
}else{
$postdata .= $input -> value;
}
if($count<$tot){
$postdata .= "&";
}
}
//Getting my curl session
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => $to_go,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $postdata,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_COOKIESESSION => true,
CURLOPT_COOKIEJAR => 'cookie.txt'
));
$result = curl_exec ($ch);
curl_close ($ch);
echo $result;
?>
捲曲也不PHP返回任何錯誤。事實上,它返回網站的網頁,但是這個網頁告訴我發生了一個錯誤,就好像缺少一些發佈數據一樣。
您認爲可以引起什麼?它可能是一些缺少curl_setopts?我不知道,你有嗎?
你正在構建自己的postdata,可能沒有正確地做。捲曲可以採取陣列。使'$ postdata'爲key = value對的數組,然後傳遞整個數組來捲曲。 – 2014-08-28 19:04:44
謝謝你的快速回答。不幸的是,我已經嘗試將我的postdata作爲一個數組,它也不起作用。 – user3602532 2014-08-28 19:16:34
你確定你輸入了所有字段,並且不錯過一些有趣的隱藏字段嗎?嘗試設置引用來自他們的網站登錄腳本 – Soundz 2014-08-28 19:24:54