Бесконечный редирект

vave

Полезный
Регистрация
22 Июн 2007
Сообщения
466
Реакции
16
Установил скрипт GeoIP на сайт для редиректа по странам.
В скрипте выставил, для евро стран переходить на
eu.domain.com/
для всех остальных просто на domain.com/
теперь из европы все перенаправляются на eu.domain.com/
а вот domain.com/ где в index.php вставлен код
PHP:
<?php require 'GeoIP_скрипт.php'; ?>
бесконечно редиректится сам на себя, от этого страница не загружаеися.
пробовал менять require на require_one но тоже не помогает.

вот что находится внтури GeoIP_скрипт.php


PHP:
<?php  
require_once("inc/function_geoip.php"); 

$url = "http://www.luxov.com/l.php"; // Редирект для всех остальных стран, которых нет в params.txt 

$arr_par = file("params.txt"); 

$ips = $_SERVER['REMOTE_ADDR']; 

$gis = geoip_open("inc/GeoIP.dat", GEOIP_STANDARD); 

$country_code = geoip_country_code_by_addr($gis, $ips); 

geoip_close($gis); 

if(!empty($country_code)){ 

for($i=0; $i<count($arr_par); $i++){ 

$str = trim($arr_par[$i]); 

$country = explode("|", $str); 

if($country_code == $country[0]){ 
header("Location: ".$country[1]); die; 
} 

} 
header("Location: ".$url); die; 

}else{ 
header("Location: ".$url); die; 
} 


?>

Помогите пожалуйста!
 
Установил скрипт GeoIP на сайт для редиректа по странам.
В скрипте выставил, для евро стран переходить на
eu.domain.com/
для всех остальных просто на domain.com/
Естественно будет бесконечный редирект, ведь юзер не из европы будет проверятся и перенаправляться на этот же скрипт с условием. Нужно как то пометить юзера который не из европы. Например записать в кук либо в сессию-

PHP:
session_start();
 
if(@$_SESSION['user_city'] != 'no_eu'){

require_once("inc/function_geoip.php");  

$url = "http://www.luxov.com/l.php"; // Редирект для всех остальных стран, которых нет в params.txt  

$arr_par = file("params.txt");  

$ips = $_SERVER['REMOTE_ADDR'];  

$gis = geoip_open("inc/GeoIP.dat", GEOIP_STANDARD);  

$country_code = geoip_country_code_by_addr($gis, $ips);  

geoip_close($gis);  

if(!empty($country_code)){  

for($i=0; $i<count($arr_par); $i++){  

$str = trim($arr_par[$i]);  

$country = explode("|", $str);  

if($country_code == $country[0]){  
header("Location: ".$country[1]); die;  
}  

}  

$_SESSION['user_city'] = 'no_eu';
header("Location: ".$url); die;  

}else{  

$_SESSION['user_city'] = 'no_eu';
header("Location: ".$url); die;  
}  

}
?>
 
  • Нравится
Реакции: vave
куку выставляй и перед проверкой на страну проверяй, если есть кука то не надо проверять страну если нет то проверить и средиректить по куке.

и скрипт быстрее станет работать, базу GEO чекнуть тоже ресурс надо , а так 1 раз за сессию.
 
Назад
Сверху