2015-02-10 131 views
-2

我嘗試使用下面的代碼獲取登錄頁面的內容。我嘗試了不同的URL,但對於這個我不確定它爲什麼返回空白結果。我檢查了錯誤日誌,沒有顯示任何內容,並且啓用了我的捲曲。使用PHP curl獲取登錄內容

solved 

回答

0

。在你的捲曲設置一些錯誤配置,第一:

$login = array(
    'username' => $username, 
    'password' => $pass, 
    'login' => 'login' 
); 

這應該只有您要發佈的字段,所以'login' => 'login'是無關緊要的。 字段名稱必須與表單字段名稱匹配,否則它們對服務器沒有任何意義。你可以通過Firebug檢查他們的名字或檢查元素。

二:

$loginUrl = 'https://affiliate.styles.my/index.php/login/page/login'; 

既然你要發送一個form,你應該張貼到在action屬性中設定的網址,您可以通過射擊在FireFox檢查元素髮現這一點,並檢查form標籤,然後看看action屬性指向的網址是什麼。

試試這個:

<?php 
$username = 'eldy'; 
$pass = '1234'; 

$login = array(
    'user' => $username, 
    'password' => $pass 
); 

$loginUrl = 'https://affiliate.styles.my/index.php/login/dologin'; 
echo http_build_query($login); 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_URL, $loginUrl); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($login)); 
curl_setopt($ch, CURLOPT_COOKIESESSION, true); 
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); 
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

$content = curl_exec($ch); 

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_URL, "https://affiliate.styles.my/index.php/dashboard/page/dashboard"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); 

$content2 = curl_exec($ch); 

echo $content2; 
curl_close($ch); 
?> 
+0

你有沒有測試過它?它並沒有解決我的問題。 – 2015-02-10 12:22:57

+0

@AmyJohnson我正要測試它。但我發現密碼已更改:D。 – 2015-02-10 12:35:11

0

首先你所有登錄帖子的網址是不正確的。實際的形式公佈網址是

 $loginUrl = 'https://affiliate.styles.my/index.php/login/dologin'; 

除此之外形式發佈字段設置不正確,密碼字段應該是「通過」而不是「密碼」

$login = array(
    'username' => $username, 
    'pass' => $pass, 
    'login' => 'login' 
); 

所以,我們要做的正確方法這將是 第一次加載登錄頁面 帖子發送數據 然後取儀表板頁面 下面是正確的代碼

<?php 

$username = 'eldy'; 
$pass = '1234'; 

$login = array(
    'username' => $username, 
    'pass' => $pass, 
    'login' => 'login' 
); 

      $loginUrl = 'https://affiliate.styles.my/index.php/login/dologin'; 


$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "https://affiliate.styles.my/index.php/login"); 
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); 
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); 
curl_setopt($ch, CURLOPT_VERBOSE, 1); 
curl_exec($ch); 



curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
curl_setopt($ch, CURLOPT_URL, $loginUrl); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $login); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); 
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); 
//curl_setopt($ch, CURLOPT_VERBOSE, 1); 

var_dump($ch); 

$content = curl_exec($ch); 
//echo $content; 





curl_setopt($ch, CURLOPT_URL, "https://affiliate.styles.my/index.php/dashboard/page/dashboard"); 
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); 
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); 
curl_setopt($ch, CURLOPT_VERBOSE, 1); 

$content2 = curl_exec($ch); 

echo $content2; 
curl_close($ch);