2014-09-29 169 views
0

多请求我目前正在凑在PHP中使用卷曲这个网站。与卷曲(PHP)

http://wateroffice.ec.gc.ca/report/report_e.html?mode=Table&type=realTime&stn=02HD006&dataType=&startDate=2014-09-22&endDate=2014-09-29&prm1=46&prm2=-1

似乎有需要实际观察数据之前打一个确认页面。在确认页面出现的是,被张贴着

dislcaimer_action的变量后,以/includes/disclaimer.php形式=我同意

我尝试下面的代码,但第二个请求似乎总是带来我回到确认页面。

$browser = curl_init(); 
curl_setopt($browser, CURLOPT_URL, "http://wateroffice.ec.gc.ca/include/disclaimer.php"); 
curl_setopt($browser ,CURLOPT_RETURNTRANSFER, true); 

curl_setopt($browser, CURLOPT_HEADER, true); 

curl_setopt($browser, CURLOPT_FOLLOWLOCATION, 1); 

$postData = 'disclaimer_action=I Agree'; 

curl_setopt($browser, CURLOPT_POST, count($postData)); 
curl_setopt($browser, CURLOPT_POSTFIELDS, $postData); 

curl_setopt($browser, CURLOPT_URL, "http://wateroffice.ec.gc.ca/report/report_e.html?mode=Table&type=realTime&stn=02HD006&dataType=&startDate=2014-09-22&endDate=2014-09-29&prm1=46&prm2=-1"); 
$output = curl_exec($browser); 

不知道我在做什么错。提前致谢!

回答

0

你应该通过POSTFIELDS作为一个关联数组,就像使用$_POST['disclaimer_action'],而不是在一个方式。

$postData = array('disclaimer_action' => 'I Agree'); 
curl_setopt($browser, CURLOPT_POSTFIELDS, $postData); 
+0

感谢您的修复,我打算关的例子中,使用为后数据的标量变量。但是这并没有解决问题。 – dnaluz 2014-09-29 16:20:13

+0

嗯。当您在浏览器中手动执行操作时,点击“我同意”后,您是否设置了会话? – 2014-09-29 16:22:26

+0

有趣的想法, 貌似有4种饼干被设置,其中包括一个PHPSESSION点心和饼干的免责声明。 – dnaluz 2014-09-29 16:24:23