2015-05-10 156 views
1

有一個網站http://www.tremorgames.com,我想做一個cURL登錄。我有一個代碼,我在我的服務器http://shalva97.x10.mx/tremorlogin/上使用,但它不起作用,但經過很多測試後,我決定在我的PC上安裝Apache,並測試完全相同的代碼,並且它工作正常。PHP cURL登錄失敗

下面是代碼:

<?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上它接收多個「設置Cookie」頭,但在服務器上是唯一的一。

爲什麼它不能在服務器上工作?爲什麼它可以在我的PC上運行?

+1

請告訴我們,這些不是你真正的憑據。如果是這樣,你需要立即改變它們。 –

+0

oops ...好的,我改變了一切現在好了:) –

回答

0

經過很多思考後,我發現它不僅是頭被髮送,但IP和我的位置。該網站不允許來自其他國家的登錄,這就是爲什麼它沒有入侵,代碼是正確的,這是關於服務器的位置。我希望這會幫助其他人也嘗試做同樣的事情。