2011-10-31 22 views
2

我有一個用於遠程控制登錄(政府)網站的捲曲腳本。該網站有一個政府範圍的登錄系統,在各種服務器上使用5個重定向。我在設置CURLOPT_COOKIEJAR時發現登錄有效,但我不明白爲什麼這是必要的。爲什麼CURLOPT_COOKIEJAR需要CURLOPT_COOKIESESSION設置默認值

http://www.php.net/manual/en/function.curl-setopt.php狀態:

CURLOPT_COOKIESESSION

TRUE,以紀念這是一個新的cookie 「會話」。它會強制libcurl到 忽略它將要加載的那個cookie,它們是前一個會話的 中的「會話cookie」。默認情況下,libcurl總是存儲並加載所有的Cookie,如果它們是會話cookie,則獨立。會話 餅乾是沒有失效日期的餅乾,他們只是活着 和現有的這個「會話」。

因此,它會出現默認的行爲是檢索並重新發送所有的cookie?

我會試着去了解爲什麼我的試驗和錯誤的方法是成功的

+1

事後的方式,但這個答案更簡潔:http://stackoverflow.com/questions/10289281/curl-cookies-and-sessions –

回答

1

CURL_COOKIEJAR僅僅是文件,其捲曲自動分析存儲在另一方面。CURL_COOKIESESSION餅乾是一個指令,它告訴curl任何它被存儲的被認爲是「會話」cookie的cookies應該被忽略。因此,要將解析後的Cookie實際存儲在系統中,必須將CURL_COOKIEJAR設置爲該位置。實際上,關於存儲/加載的意思是,默認情況下,無論cookie是否爲「會話」cookie,如果它存儲在cookiejar中,它將隨請求一起發送。