我做错了什么?卷曲PHP Cookies

我做错了什么?卷曲PHP Cookies,php,cookies,curl,Php,Cookies,Curl,我正在使用curl登录一个网站,它成功地让我登录并显示页面,上面写着“感谢登录jackbrown”,我可以看到会员区 但是,没有在我的服务器“/tmp/cookie.txt”上创建cookie文件 因为我已经登录,所以我想再次使用curl从members区域检索数据,但是当运行页面的这部分时,我只得到了“请登录以继续” 第一段代码用于登录(这可以让我登录,但不创建cookie文件): 编辑:sbeliv01指出cookie拼写错误 如果没有,请尝试在代码顶部添加此项,以便在出现任何错误时显示:

我正在使用curl登录一个网站,它成功地让我登录并显示页面,上面写着“感谢登录jackbrown”,我可以看到会员区

但是,没有在我的服务器“/tmp/cookie.txt”上创建cookie文件

因为我已经登录,所以我想再次使用curl从members区域检索数据,但是当运行页面的这部分时,我只得到了“请登录以继续”

第一段代码用于登录(这可以让我登录,但不创建cookie文件):


编辑:sbeliv01指出cookie拼写错误 如果没有,请尝试在代码顶部添加此项,以便在出现任何错误时显示:

error_reporting(E_ALL);
ini_set("display_errors",1);
此代码用于检查文件是否可写入,并确保cookie文件可写入:

// change $cookie_file_path to yours
$fp = fopen($cookie_file_path,'wb') or die("can't open cookie file");
fclose($fp);
我还注意到您没有在此处设置cookie选项:

// set additional curl options using our previous options
$ch  = curl_init();
curl_setopt($ch, CURLOPT_URL, $URL2);
curl_setopt($ch, CURLOPT_REFERER, $URL);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);        
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

可能是因为变量名在顶部声明时有一个额外的
o
,然后是稍后在cURL中使用的变量名:

$coookie = tempnam ("/tmp", "CURLCOOKIE"); // Notice coookie with the extra o

curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); // Spelled with only two o's here
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);  // Spelled with only two o's here

添加了大量代码并更正了cookie名称,但是仍然处于相同的情况,没有关于cookie可写的错误代码。我注意到,当请求与post一起发送时,您没有CURLOPT_COOKIEJAR选项。我已经添加了这些,仍然没有区别:(感谢您迄今为止的帮助!现在是否正在创建cookie文件?如果没有,请尝试手动创建cookie文件和chmod 777,然后给出您的变量$cookie='/full/path/to/cookie.txt'的完整路径cookie文件现在正在创建,谢谢,我已经更改了,但仍然有相同的问题。添加
curl\u setopt($ch,CURLOPT_AUTOREFERER,TRUE);
并更新您的帖子,以了解问题的最新情况。我在回答的评论中看到,您的回答比这里描述的更进一步,但仍需要帮助
// set additional curl options using our previous options
$ch  = curl_init();
curl_setopt($ch, CURLOPT_URL, $URL2);
curl_setopt($ch, CURLOPT_REFERER, $URL);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);        
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$coookie = tempnam ("/tmp", "CURLCOOKIE"); // Notice coookie with the extra o

curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); // Spelled with only two o's here
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);  // Spelled with only two o's here