curl不发送cookie值

时间:2009-12-02 14:17:53

标签: php cookies curl

我想通过发送POST请求来读取登录后获得的cookie值。

然后我想使用Curl将该cookie值与另一个POST请求一起发送给另一个动作。但在发送此信息后,当我试图查看所有发布的标题时,它确实显示我已发送任何cookie值。我的发布网址无法使用此值,因此无法通过身份验证访问该信息。请告诉我我做错了什么:

$URL1        = "http://www.getinf.com/iconf/user?action=buGroup";
$postfields1 = "device=mapp&type=ajax&name1=ra&cc1=91&min1=90name2=imm&cc2=91&min2=97";

// sends a post request
$ch1 = curl_init();   
curl_setopt($ch1, CURLOPT_URL,$URL1); 
curl_setopt($ch1, CURLOPT_POST, 1);

curl_setopt($ch1, CURLOPT_COOKIE,'JSESSIONID=199FFF6355DEA87F3D72E692E7514AD2');
curl_setopt($ch1, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch1, CURLOPT_HEADER,true);
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch1, CURLOPT_POSTFIELDS, $postfields1);

$result = curl_exec($ch1);

print_r(headers_list());// displays all post request data
$ret = ReturnVal($result);
print_r(get_headers($URL1, 1)); // 
curl_close ($ch1);

那么这段代码有什么问题阻止JSESSIONID值作为cookie值访问?

3 个答案:

答案 0 :(得分:1)

php docs

中查看此页面上的评论(或搜索“Cookie”)
  

什么都没提到   文档是你必须设置的   CURLOPT_COOKIEJAR到一个文件   实际使用Cookie的CURL句柄,   如果没有设置,则cookie不会   被解析。

答案 1 :(得分:0)

尝试将CURLOPT_cookie更改为CURLOPT_COOKIE

答案 2 :(得分:0)

CURLOPT_COOKIESESSION用于启动新的Cookie会话并忽略存储的所有Cookie。

来自PHP.net:使用CURLOPT_COOKIESESSION = TRUE将此标记为新的cookie“会话”。它将强制libcurl忽略它将要加载的所有cookie,它们是来自前一个会话的“会话cookie”。默认情况下,libcurl始终存储和加载所有cookie,如果它们是会话cookie,则是独立的。会话cookie是没有到期日期的cookie,它们只是存在且仅存在于此“会话”中。

使用:curl_setopt($ ch,CURLOPT_COOKIESESSION,false);