2011-05-25 158 views
0

我嘗試使用phpcommand:curl提交登錄表單,但它不起作用。 字段格式爲兩個:email和psw。 問題是,如果我使用urlencode字段的電子郵件它返回錯誤:「不正確的格式電子郵件!」,而如果我不使用urlencode沒有響應。使用curl進行遠程登錄(php)

這是沒有用urlencode代碼:

$url = 'myurl'; 
$fields = array(
     'login_email'=> '[email protected]', 
     'login_passwd'=> 'mypsw', 
    'remember_me' => '1' 
    ); 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); // Return page in string 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS,$fields); 
$page = curl_exec($ch); 
echo $page; 

//close connection 
curl_close($ch); 
+0

......好吧,顯然,我們需要看看處理登錄的代碼... – rockerest 2011-05-25 15:09:13

回答

3

你肯定有沒有反應?如果登錄成功,許多登錄系統只是重定向到其他頁面。嘗試添加

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 

這使得CURL服從重定向並獲取服務器發送給您的任何頁面。

或者,您可以使用CURLOPT_HEADER選項在返回到您的$page值的響應中包含HTTP標頭,並查看其中發生了什麼。

+0

我獲得解決方案!!!我使用這個類:http://www.sv-design.org/blog/php-classe-curl-come-gestire-le-richieste-e-i-login-remoti-con-php/ – Dany 2011-05-25 15:21:34

+1

沒有parlo Italiano? – 2011-05-25 15:22:41