2011-11-03 55 views
1

我需要獲取訪問者的IP,但是當cron運行時發現REMOTE ADDR是未定義的索引。事實上,當文件與cron一起運行時,沒有遠程地址。遠程ADDR問題與Cron作業

如何避免此問題?

有沒有一種方法在PHP中說「如果遠程ADDR存在然後考慮它,如果沒有(因爲它從cron運行),然後繞過它」?

$ip=$_SERVER['REMOTE_ADDR']; 


$allowed_ips = array("82.61.144.100", "82.64.144.100"); 

if (!in_array($ip, $allowed_ips)) { 
header("Location: http://pitchmystuff.co.uk/coming_soon/"); 

}

回答

2

嘗試:

if (isset($_SERVER['REMOTE_ADDR']) && !empty($_SERVER['REMOTE_ADDR'])) { 
    $ip = $_SERVER['REMOTE_ADDR']; 
} 

你的問題可能會比我怎麼看它更復雜。

+0

謝謝。有效! –

+0

太好了。不知道我是否正在閱讀這個問題:) –

5

更好的方法是使用

if ((php_sapi_name() == 'cli')) { 
    ... running as commandline/cron script ... 
} 

代替。