php curl jsessionid如何保存并使用保存会话ID和cookie

时间:2014-01-20 20:27:00

标签: php session cookies curl jsessionid

好的,所以我在下面有一个phpcurl脚本抓取cookie并向我显示一个页面,我将在下面发布这些。

<?php
$url = 'http://www.example.com/stats.po';
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt');
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_COOKIESESSION, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result= curl_exec ($ch);
curl_close ($ch);
echo $result;
?>

这个脚本正确保存了cookie文件,我在curl的外观上得到了这个,它与标题中的会话ID匹配并保存在cookie文件中。

<p>This document you requested has moved temporarily.</p> <p>http://www.example.com/stats.po&#59;JSESSIONID_oschA=GQ4ySdFRyqjk12hj45GM4c6LG0KRj8f4pzvD3YSvrql9BwdGgNyn!-1634352464">https://www.example.com/stats.po&#59;JSESSIONID_oschA=GQ4ySdFRyqjk12hj45GM4c6LG0KRj8f4pzvD3YSvrql9BwdGgNyn!-1634352464</a>.</p>

我现在如何转到输出中给出的jsession url链接,同时仍然使用相同的cookie等

2 个答案:

答案 0 :(得分:1)

我不确定,但我认为如果你在CURLOPT_COOKIESESSION设置为1时发出第一个curl请求,那么在第二个请求中删除该选项应该是好的。我不是这方面的专家,但CURLOPT_COOKIESESSION的文档似乎与您描述的症状相符。

答案 1 :(得分:0)

这两个请求仍应使用相同的Cookie

<?php
function mycurl($url){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt');
    curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt');
    curl_setopt($ch, CURLOPT_HEADER, TRUE);
    curl_setopt($ch, CURLOPT_COOKIESESSION, 1);
    curl_setopt($ch, CURLOPT_VERBOSE, 1);
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $result= curl_exec ($ch);
    curl_close ($ch);
    return $result;
}
echo mycurl("http://www.example.com/stats.po");
echo mycurl("http://www.example.com/stats2.po");
?>