php cURL cookie保存空

时间:2012-03-28 21:30:38

标签: php curl

我使用cURL建立了一个成功的连接,但是我试图下载一个文件并且它无法正常工作。我知道这是cookie,因为当我打开下载的文件时,它包含一个授权的必需消息。初始身份验证正在运行。任何想法

// Create a curl handle to a non-existing location
$ch = curl_init('https://xxxx/');


// curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);


// ENABLE HTTP POST
curl_setopt ($ch, CURLOPT_POST, 1);

// SET POST PARAMETERS : FORM VALUES FOR EACH FIELD
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'user=xxx&password=xxx');

// IMITATE CLASSIC BROWSER'S BEHAVIOUR : HANDLE COOKIES
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');



curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

$fp = fopen("status.xml", "w");

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);


if(curl_exec($ch) === false)
{
    echo 'Curl error: ' . curl_error($ch);
}
else
{
    echo 'Operation completed without any errors';
}


curl_close($ch);


fclose($fp);

2 个答案:

答案 0 :(得分:1)

CURLOPT_COOKIEFILE用于阅读Cookie,CURLOPT_COOKIEJAR用于撰写。

curl_setopt ($ch, CURLOPT_COOKIEJAR, '/path/to/cookie.txt');

确保您拥有Cookie文件的完整路径,并且有权写入

答案 1 :(得分:1)

Cookie句柄信息只需在句柄关闭后保存到文件中,就像在手册中说的那样:

  

CURLOPT_COOKIEJAR =>用于在句柄关闭时保存所有内部cookie的文件名,例如在致电curl_close之后。

Manual: curl_setopt 此外,您可能需要考虑到这一点:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);