2010-07-24 73 views
0

我試圖使用PHP和file_get_contents函數獲取文件的來源。使用PHP獲取文件的來源

問題是網站需要登錄。我認爲這可以通過首先登錄到站點,然後使用file_get_contents函數來繞過,但事實並非如此。函數返回的頁面是登錄頁面。

這是代碼:

<?php 

if (isset($_GET['getroster'])){ 
$file = stripslashes(file_get_contents('https://intranet.hlf.de/custom/cddTUB.asp?show=1')); 
print ($file); 
} 

?> 

正如你可以看到運行此功能時,或將網址時,它請求從下拉列表中的用戶名,密碼和公司。

是否可以通過使用這個或任何其他PHP函數將這些值傳遞到頁面。或者也許以完全不同的方式做到這一點?

回答

2

您瀏覽器中的cookies以及可以使用PHP發送的cookies完全無關。

使用curl您可以設置選項CURLOPT_COOKIEJARCURLOPT_COOKIEFILE以指定一個文件,其中應該存儲和加載cookie。

這樣做您首先必須提出登錄請求(這會讓您獲得cookie)。接下來,你可以做你想做的登錄用戶的請求(因爲現在curl有cookies)。

0

您必須發送正確的cookie。如果您可以使用捲曲,那麼this page上的腳本應該有所幫助。你也可以看看這個SO question(它與你的情況稍有不同,因爲它正在重複使用瀏覽器cookies來提出請求)。

0

任何改變你可以張貼丹尼爾怎麼做的例子嗎?

不會有創建類似登錄的選項,可以將用戶信息發送到頁面以自動登錄? 閱讀關於stream_context_create函數的一些信息,它可以通過發送頭信息進行登錄,但我真的不會從哪裏開始。發佈的例子只提供用戶名和密碼,但我當然有第三個選項發佈到認證頁面!