2011-07-22 82 views
1

我有一個使用CURL登錄到另一個頁面的php頁面,獲取cookie然後用它來調用另一個頁面。在新頁面上,可以再次調用php來調用相同的頁面,但使用不同的參數。此代碼全部在我的免費虛擬主機網站上運行。但是,當我將它移動到我的客戶時,第一次調用的網頁(即,Cookie已創建並使用正常),但是當我使用新參數再次調用頁面時(即Cookie未被重用),不會重新調用該頁面。代碼在wordpress中,所有細節都幾乎相同(就像我將主題,插件和數據庫從一個站點複製到另一個站點一樣)。造成差異的原因是什麼?如何改變這種差異? 我現在看到的唯一差別是看網頁的響應,不工作的網站將緩存控制設置爲無緩存且年齡= 0。這是否是原因,如果是的話,我該如何改變這種情況?當cookie第二次被調用時,PHP CURL Cookie不會保留

+0

如果默認使用cookiejar/file,請檢查捲曲配置。請參閱http://curl.haxx.se/mail/archive-2002-05/0001.html和http://icfun.blogspot.com/2009/04/php-how-to-use-cookie-jar-with -curl.html – hakre

回答

0

嘗試將cookiejar /文件手動分配到你的捲髮操作:然後

$cookie_file = "/tmp/cookie/cookie1.txt"; 
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); 
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); 

捲曲將開始請求之前讀取來自cookiejar餅乾,會收到餅乾寫入它從響應得到cookiefile。

該路徑必須可由PHP執行的用戶訪問和讀/寫。你應該使用完整的路徑,而不是相對的路徑。

編輯:Marc B writesPHP, Curl, curl_exec(), curl_close() and cookies cookie被綁定到捲曲手柄。所以只要你不關閉手柄捲曲應該注意餅乾。

所以你可能不需要cookiejar /文件,如果兩個請求共享相同的捲曲句柄。

+0

謝謝你,這個問題是路徑必須是可訪問和可讀寫的。我將我的cookiejar文件更改爲絕對路徑,然後使文件夾可訪問並且工作。我最初嘗試寫入到服務器上的public_html文件夾中,該文件夾沒有工作,並且在網站上的子文件夾中工作,所以也許就是這樣。 – Seanog