如何在已重定向到GET表单的页面中使用cURL?

时间:2015-07-03 21:41:45

标签: php curl

我发现了一个问题...我想在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;
}

1 个答案:

答案 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在执行所有重定向后结束的最终网址。