簡體   English   中英

以登錄用戶身份打開cURL / PHP失敗

[英]cURL/PHP opening as logged user fails

我以登錄用戶的身份打開一個頁面,它似乎可以正常工作,但該網站具有某種保護系統。 如果正常執行此操作,則將獲得所需的頁面,但是如果使用cURL進行此操作,則將顯示“歡迎回來的用戶(用戶ID)”和指向我請求的頁面的鏈接。 單擊鏈接后,我將到達想要的位置。 現在,我嘗試偽造引薦來源並檢查發送到頁面的數據,那里沒有什么特別的。 當我單擊鏈接時,我只是直接重定向到我想要的頁面。 我的問題是,為什么這段代碼也不能使我到達那里:

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL , "http://www.site.com/sell/index");
curl_setopt($ch, CURLOPT_REFERER, 'http://www.site.com');
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.A.B.C Safari/525.13");
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_FAILONERROR, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, false);
curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
$response = curl_exec($ch);
curl_close($ch);
echo $response;

在執行此操作之前,我將執行登錄過程並獲取Cookie。 而且,我確實以登錄用戶的身份打開了該頁面,如果沒有單擊ahref,我似乎無法訪問它。

PS。 如果我登錄,打開想要的頁面,關閉瀏覽器並再次打開它,也會發生同樣的事情。 所以我認為這與引薦有關嗎?

cookie-jar意味着它將保存來自curl響應的cookie。 這就是為什么它對您不起作用。 而是使用cookie文件,以便您的curl發送帶有請求的存儲的cookie:

curl_setopt($ch, CURLOPT_COOKEFILE, "cookie.txt");

另外,請使用絕對路徑( /var/tmp/cookie.txt )而不是相對路徑。

現在,要開心!

暫無
暫無

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

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