我正在嘗試在我的php Web應用程序上使用按鈕在另一個網站上啓動登錄的會話。換句話說,我希望我的應用程序:無頭登錄:使用cURL登錄並打開遠程會話
- 打開一個新標籤/窗口(實現)
- 轉到另一個網站+登錄或
- (或者)收集所需的目標站點的會話數據考慮當前的瀏覽器登錄
這得以實現(在不完全的方式用下面的代碼:
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$postdata);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch, CURLOPT_REFERER, $url);
$result = curl_exec ($ch);
curl_close ($ch);
print $result;
這成功地將遠程站點的「登錄」頁面可視化,但是每當我點擊此類遠程站點的任何功能時,我都會看到並顯而易見404。這是因爲我只是通過cURL打印成功登錄的輸出而我的瀏覽器不處理目標網站上的遠程應用程序。例如。我的地址欄說我在local.dev/loggedin.php中,而不是在secure.targetsite.com/loggein.php。
這可能有幫助:一旦通過瀏覽器登錄後,目標網站會設置一個會話cookie,允許會話在一段時間內存活,這樣也可能有用。我的web應用程序是否可以從curl執行的auth過程中獲取並存儲會話數據並使用它登錄?
這也許是不可能被通過捲曲做..
我想的只是解析響應報頭的cookie和使用PHP的setcookie(),但它不工作:我得到遠程反彈應用程序,如果我從未登錄過。
請耐心等待,我不是使用捲曲的專家。
你是對的,這不可能通過cURL。而且你也不能爲其他域設置Cookie。 – CBroe
如果你想創建一個無頭的登錄到另一個網站,你會以哪種方式解決這個問題? – artoo