我有一个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?
答案 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)