我发现了一个问题...我想在POST方法中将一个FORM发送到页面www.mysite.com/teste_process.php
,但是这个页面返回了一个重定向到页面www.mysite.com/teste.php?number=987
在这种情况下,GET上的数字(987) )是随机的,并在第一页(过程)中生成。我需要第二页中的一些数据。使用cURL我发送了POST,但第二页的数据没有出现。
我用这个函数发送FORM:
function curl_post($url, $cookiefile, $post, $referer = "") {
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_REFERER, $referer);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookiefile);
$redirects=5000;
$data = curl_redirect_exec($curl,$redirects);
curl_close($curl);
return $data;
}
答案 0 :(得分:0)
你错了是使用curl_redirect_exec
。而不是这样做,尝试替换这两行:
$redirects=5000;
$data = curl_redirect_exec($curl,$redirects);
这两行:
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
$data = curl_exec($ch);
这样做会无限次地重定向,并将最终页面的数据返回到$data
。此外,您可以使用curl_getinfo($ch, CURLINFO_EFFECTIVE_URL)
查找cURL在执行所有重定向后结束的最终网址。