cURL不会触发setcookie

时间:2012-01-14 00:09:46

标签: php curl

我有一个cURL脚本,它将登录信息发送到脚本。

//open connection
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url;
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields1);

//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch);
//open connection

该脚本具有setcookie功能。

setcookie("cookie_email",$email,time()+(3600*24*$i),"/");
setcookie("cookie_password",$password,time()+(3600*24*$i),"/");

当我使用表单登录表单时,一切都按预期工作。出于某种原因,当你运行cURL时,它正在跳过setcookies函数。

我一直在网上,我找不到解决方案。我不确定为什么它没有设置cookie。

非常感谢正确方向的任何一步。

谢谢, 菲尔

UPDATE! - 越来越近了

好的,我做了一些更改,抓取cookie并将它们放入cookie文件中。我设定的两个问题 1.文件中的烹饪密码为:已删除 2.未在浏览器中设置cookie。

如何将md5($ password)放入文件中,以及如何:      curl_setopt($ ch,CURLOPT_COOKIEFILE,'cookies / cookies.txt'); 在浏览器中设置cookie?

1 个答案:

答案 0 :(得分:2)

您必须为curl设置CURL_COOKIEJAR和CURL_COOKIEFILE选项,以设置应分别存储和加载Cookie的位置。

编辑:您的示例已重写:

//open connection
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url;
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields1);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies/cookies.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies/cookies.txt');

//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch);

这假设您已经创建了一个目录' cookies /'并将cookie保存在名为' cookies.txt'的文件中。 (只要您的网络服务器可以写入该目录,它就会自己创建文件)

随后的请求将在发送请求时使用存储在cookies.txt中的任何cookie(假设您也为该请求设置了cookieile)