2011-11-03 2 views
1

방문자의 IP를 가져올 필요가 있지만 cron이 실행될 때 REMOTE ADDR이 정의되지 않은 색인임을 알게됩니다. 실제로 파일이 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/"); 

}

답변

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 ... 
} 

을 사용하는 것입니다.