我想通過cURL在PHP中設置cookie,但它失敗。我的PHP代碼如下所示通過捲曲設置cookie
$ch=curl_init();
$url="http://localhost/javascript%20cookies/test_cookies.html";
curl_setopt($ch, CURLOPT_COOKIE, 'user=1');
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$contents = curl_exec($ch);
curl_close($ch);
echo $contents;
?>
文件test_cookies.html包含的JavaScript來檢查一個cookie,如果它發現它dispalys額外的用戶內容的內容。 但是當我使用上面的腳本時,它顯示了頁面test_cookies.html的內容,但沒有附加的用戶內容,這意味着它沒有設置cookie。
我試着寫另一個劇本這樣
<?php
header("Set-Cookie:user=1");
header("Location:test_cookies.html");
?>
這個工作並設置cookie,並給出了額外的用戶的內容了。 我使用
curl_setopt($ch,CURLOPT_COOKIEFILE,"cookie.txt");
curl_setopt($ch,CURLOPT_COOKIEJAR,"cookie.txt");
這是寫入cookie信息的文件,但抓取的網頁時,不讀書也試過。 有人可以幫忙嗎?
,但發送一個cookie通知頭意味着我不需要設置CURLOPT_COOKIE選項。對我來說似乎不好。 – lovesh 2011-05-15 08:38:18
我意識到由curl獲取的內容並不取決於是否存在cookie,我更新了我的答案,因此,在通過curl獲取html頁面時不需要cookie,但在內容到達時您確實需要cookie在瀏覽器中。這就是以上所做的。我會把感受放在一邊並做一個測試。 – 2011-05-15 08:46:20
@Majid Fouladpour:但這種方式我不使用捲曲來設置cookie,而是依靠標題。如果我需要使用捲曲怎麼辦?我使用了像CURLOPT_COOKIEFILE和CURLOPT_COOKIEJAR這樣的選項,但他不工作。有沒有其他出路? – lovesh 2011-05-15 08:50:36