簡體   English   中英

PHP使用Curl登錄到HTTPS頁面

[英]PHP login to HTTPS page using Curl

我正在嘗試使用php curl函數登錄到https網頁“ https://portal.opalonline.co.uk/Home/PortalCore/SignIn/SignIn.aspx

但是我沒有辦法將值發布到此特定頁面(用戶名,密碼)並“按'登錄'”。

$postfields = array('ctl00_MasterContentContentPane_Signin1_userID_txt'=>'email@address.com', 
            'ctl00_MasterContentContentPane_Signin1_password_txt'=>'somepassword123');

/* LOG IN TO TalkTalk ACCOUNT */
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "https://portal.opalonline.co.uk/Home/PortalCore/SignIn/SignIn.aspx?");   
curl_setopt($ch, CURLOPT_HEADER, false);
// curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);  
// curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIE_FILE); 
// curl_setopt($ch, CURLOPT_COOKIE, COOKIE_FILE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
curl_setopt($ch, CURLOPT_POST, 1);  
var_dump($ch);
$string_exec = curl_exec($ch);
var_dump($string_exec);

我什至無法顯示帶有var_dump的頁面:(。非常感謝您的想法/建議

首先,我不認為您可以做類似“數組”的事情,因為那樣會使PHP / CURL創建多部分的formpost,而這不是這種形式。 提供“名稱=值&名稱2 =值2”樣式的數據。

然后,確保您還提交了表單中的所有隱藏字段。 至少有四個。 HTML將其中之一設置為需要提取和設置的長值,還有一些javascript魔術可以設置其他一些魔術。 您可能需要使用瀏覽器的網絡工具來窺探您的瀏覽器發送的內容,以便能夠完美模仿。

登錄頁面設置cookie,並且您可能需要在提交登錄表單時傳遞這些cookie。 因此,您需要首先獲取(GET)登錄表單頁面以獲取Cookie,然后提交登錄POST。

修復該問題后,您應該靠近一些。 如果還不夠,請繼續將瀏覽器的請求與您的請求發送的內容進行比較,並確保它們盡可能相似。

在Google Chrome中打開網站,打開控制台,進入“網絡”標簽。

登錄網站。 您應該在“網絡”標簽中看到該請求。 右鍵單擊它,選擇“復制為cURL”。 它會給您一個命令行,它將幫助您了解所需的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM