2014-05-24 3 views
-1

사용자가 리퍼러가없는 페이지로 이동했거나 사용자가 내 페이지를 직접 입력 한 경우 다른 페이지에서 컨텐트를로드하려고합니다.NO 리퍼러 ​​및 리디렉션 타입 인 트래픽이있는 경우 리디렉션

이것은 이것을 달성 할 수 있도록 변경하려는 코드입니다.

아래 코드는 사용자가 아래에 나열된 IP 중 하나를 가지고있는 경우 fakepage.php을로드 할 때 리디렉션됩니다. 이 스크립트를 변경하여 리퍼러가 없거나 사용자가 직접 내 URL을 입력하는 경우 작동하도록하고 싶습니다.

<?php 
$banned = array('56.150.186.229','89.103.221.49'); 
$userIP = $_SERVER['SERVER_ADDR']; 
if(in_array($userIP,$banned)) { 
include_once('fakepage.php'); 
} else { 
include_once('realpage.php'); 
} 
?> 

나는이 가능한 원활한 보이게하기 위해 노력하고있어, 그래서 당신이 실행하는 경우 사용자가 사용자의 IP (다른 헤더를해야 할 수도 있습니다를 얻을 수

답변

0

사용 $_SERVER['REMOTE_ADDR']을 리다이렉트 알 수 없습니다 프록시 또는 유사한 뒤에. 그런 다음 $_SERVER['HTTP_REFERER']이 두 번째 조건 비어 있는지 확인합니다.

$banned = array('56.150.186.229','89.103.221.49'); 
$userIP = $_SERVER['REMOTE_ADDR']; // likely users ip 
$noReferer = empty($_SERVER['HTTP_REFERER']); 
if(in_array($userIP,$banned) or $noReferer) { 
    include_once('fakepage.php'); 
} else { 
    include_once('realpage.php'); 
} 
+0

을 나는 상황을 제대로 이해한다면 그들이 내 URL에서 특정 IP를 입력에서 오는 경우 그래서,이 가짜 페이지를 표시합니다 URL 표시 줄에 직접, 그리고 리퍼러가없는 경우? –

+0

저는 그들이 직접 URL을 입력합니다. 리퍼러는 없을 것이며, 리퍼러를 보내지 않으면 다른 이유로 인해 가짜 페이를 보여줄 것입니다. 또한 그들이 열거 된 ip에서 오는 경우에 그것은 가짜 pae를 보여줄 것이다. @JoeBobby – Victory

관련 문제