如何在整个cURL会话中维护cookie数据?

问题描述:

我使用卷曲登录,就像这样:如何在整个cURL会话中维护cookie数据?

curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); 
curl_setopt($ch, CURLOPT_URL,'http://www.website.com/login.php'); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, 'username=example&password=example'); 

然后,一旦这样跑,我使用这个认证进一步要求:

curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); 

麻烦的是,我可以除非我每次运行它时都重做登录部分,否则似乎不会使代码正常工作;这似乎不切实际,我敢肯定还有更好的方法去做。也许有一种方法可以告诉cURL Cookie保持活动多久?

+0

设置COOKIEJAR和COOKIEFILE选项,然后再进行登录呼叫。 – 2011-06-13 14:47:43

在您进行任何认证工作之前,请确保您设置了CURLOPT_COOKIEFILECURLOPT_COOKIEJAR

此外,请确保cookie.txt是可读写的。