[英]PHP: use logged-in cURL session on normal web browser
晚上好!
我在PHP中有一個腳本,可以對遠程主機登錄頁面進行CURL調用。 登錄並通過cookiejar opt和cookiefile opt保持會話后,我使用相同的CURL連接處理程序登錄到下一個需要上傳的頁面。 完成后,我獲得了完整的會話參數,並且可以從站點中調用任何我想要的頁面,但是在CURL中!
想法是,此腳本使用CURL,最終需要使用CURL會話重定向到遠程主機中的那些頁面之一,但這是不可能的,因為從curl您無法將結果顯示為重定向頁面。
所以我嘗試了很多選擇。 em根本不起作用。
架構:
那該怎么辦?
1)完全登錄后,閱讀cookies.txt文件以獲取PHPSESSID。 然后嘗試使用setcookie()或通過header(“ Set-cookie:...”)以及之后立即使用header(“ Location:domain.com/index.php”)。
不起作用
2)通過ajax調用並最終document.cookie = ...
不起作用
3)向我的遠程主機中的文件添加第三個cURL調用,將打印JSONED $ _SESSION。 將其獲取到我的PHP腳本中,對其進行解碼並通過任何數組值上的foreach加載到我的本地會話中(foreach()... $ _ SESSION [$ c] = $ v)。 在此foreach之前添加了session_start()。 緊隨其后的是標題(“ Loaction:domain.com/index.php”)。
不起作用
4)在標頭(“位置:domain.com/index.php”)之前添加了一個session_write_close()。
不起作用
所以我真的不知道如何使用CURL會話。
我試圖通過Web Developer Firefox插件手動修復PHPSESSID。 我記下了curl生成的會話ID。 完美的作品。 因此,應該可以通過在我的PHP腳本上編寫腳本來修復它! 但是我不能!
請幫幫我!
謝謝!
我可能有點迷路,但我想我明白。 您可以使用CURLOPT_HEADER進行一些調試(將包含當前重定向的頁面信息)和CURLOPT_FOLLOWLOCATION,如下所示:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://domain.com/login.php');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
我也用
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
以字符串形式返回,這對於調試或解析非常有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.