2012-02-02 106 views
1

我想通過捲曲登錄到頁面。如果成功登錄將您重定向到實際的網站,並在那裏看到內容。PHP使用cookie登錄

基本上,有2個網址,第一個網址是發佈登錄憑據,另一個網址是登錄後可見的內容。

我設法發送一個帖子請求到登錄網址,它也成功地創建了一個有效的cookie,但我無法弄清楚如何使用cookie從第二個url中查看頁面內容。

我想用這兩個選項來檢索第2頁的內容,但是如果你查看它的源代碼,它只是顯示要重定向到的html代碼的正常curl請求(代碼中沒有POSTFIELDS)登錄網址。

curl_setopt($ch1, CURLOPT_COOKIEJAR, 'cookie.txt'); 
curl_setopt($ch1, CURLOPT_COOKIEFILE, 'cookie.txt'); 

關於我可能做錯什麼的想法?

+0

更多的代碼將是有益的,因爲在這兩個請求任意數量的事情可能會造成這個問題。 – flesk 2012-02-02 08:39:58

+0

請在下面的答案中看到評論 – Kartik 2012-02-02 18:24:37

回答

0

嘗試更多的參數添加到您的捲曲的要求:

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, 1); 
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)'); 
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt"); 
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt"); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$string = curl_exec ($ch); 
curl_close ($ch); 
+0

所有這些都是當前存在的,但是當我傳入url時,返回的內容是重定向到登錄頁面的html代碼。暗示該cookie未傳遞。這就是爲什麼我很困惑 – Kartik 2012-02-02 07:06:59

+0

因此,最好給我們你試圖訪問的網站,我們可以做我們的測試,並返回正確的答案 – Ashraf 2012-02-02 08:51:18

+0

我現在使用剛剛粘貼到第一次登錄的確切代碼。在那裏你的代碼完美地設置了cookie。現在我正在嘗試獲取需要此Cookie的頁面內容以顯示內容。我會給你的URL,但你不能得到它的任何地方,因爲你無法獲得登錄憑據。 – Kartik 2012-02-02 18:26:17