[英]PHP cURL login fails
有一个网站http://www.tremorgames.com ,我想进行cURL登录。 我有一个在服务器上使用的代码http://shalva97.x10.mx/tremorlogin/,但是它无法正常工作,但是经过大量测试,我决定在PC上安装Apache并测试了完全相同的代码,有效。
这是代码:
<?php
$url="http://www.tremorgames.com/index.php";
$postdata = "loginuser=shalva&loginpassword=shalva&Submit=&saveme=1";
$ch = curl_init();
$f = fopen('request.txt', 'w');
curl_setopt_array($ch, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_FOLLOWLOCATION => 1,
CURLOPT_VERBOSE => 1,
CURLOPT_STDERR => $f,
CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0',
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $postdata,
CURLOPT_HEADER => 1,
CURLOPT_HTTPHEADER => array("Accept-Language: en-US;q=0.6,en;q=0.4", "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "Connection: keep-alive"),
CURLOPT_COOKIEFILE => "cookies.txt", //Save cookies
CURLOPT_COOKIEJAR => "cookies.txt", //Cookies located
CURLOPT_REFERER => 'http://www.tremorgames.com/index.php',
CURLOPT_ENCODING => 'gzip,deflate'
));
echo curl_exec($ch);
fclose($f);
curl_close($ch);
?>
在我的PC和服务器上执行相同的代码,我得到不同的标头,在PC上它接收多个“ Set-Cookie”标头,但在服务器上它只是一个。
为什么它在服务器上不起作用? 为什么它可以在我的PC上运行?
经过一番思考,我发现不仅发送了标头,而且还发送了ip和我的位置。 该站点不允许来自其他国家的登录,这就是为什么它没有登录,代码正确且全部与服务器位置有关。 我希望这会对其他也尝试做同样事情的人有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.