php cURL cookie保存为空

php cURL cookie保存为空,php,curl,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($

我使用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);

CURLOPT_-COOKIEFILE
用于读取cookies,
CURLOPT_-COOKIEJAR
用于写入

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

确保您拥有cookie文件的完整路径,并且该文件具有写入权限

关闭手柄后,cookie信息只需保存到文件中即可,如手册中所述:

CURLOPT_COOKIEJAR=>当句柄关闭时(例如,在调用curl_close之后),保存所有内部cookie的文件名

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

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

事实上我让它工作了,但奇怪的事情正在发生。下载的文件包含登录页面,而不是我要下载的xml文件。我做错了什么。感谢如果有时有效,有时无效,这意味着它与您试图获取数据的服务器相关。我什么都不能说。分析它,看看你遗漏了什么如果你不使用你得到的cookie delete
CURLOPT_cookie文件
lineary我确定这是cookie问题,连接正常,但cookie是空的。。我还检查了cookie文件是否存在,是否可写,是否正确