繁体   English   中英

PHP cURL登录失败

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM