2014-01-20 83 views
0

好吧,我有一个phpcurl脚本,抓取cookie并向我显示一个页面,我将在后面发布这些内容。php curl jsessionid如何保存并使用保存会话ID和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文件,我得到这个上的卷曲至极的outut会话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 ECT ECT

+0

您是否尝试制作另一个卷曲请求? – Jompper

+0

这就是我想问的问题如何使用卷发再次发送请求,同时仍然传递相同的数据我对所有这些都是新的,只需要一个帮助的手它花了我一段时间来到这里:) – user3216226

回答

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"); 
?> 
+0

好的兄弟我可以看到这只是一件小事情是有办法我可以解析给我的第一个请求的URL第二次卷曲操作的会话ID – user3216226

+0

我刚刚尝试过这不会工作,因为它创建一个新的会话ID每个时间我做一个卷曲reqesuest – user3216226

+0

你确定cookie保存在Cookies.txt中 – Jompper

1

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