我需要获取访问者的IP,但是当cron运行时,它发现REMOTE ADDR是未定义的索引。事实上,当文件与cron一起运行时,没有远程地址。
如何避免此问题?
在PHP中是否有办法说“如果REMOTE 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/");
}
答案 0 :(得分:7)
更好的方法是使用
if ((php_sapi_name() == 'cli')) {
... running as commandline/cron script ...
}
代替。
答案 1 :(得分:2)
尝试:
if (isset($_SERVER['REMOTE_ADDR']) && !empty($_SERVER['REMOTE_ADDR'])) {
$ip = $_SERVER['REMOTE_ADDR'];
}
你的问题可能比我看到的更复杂。