Mr_artmos
@Mr_artmos

Что не так с кодом (Sypex Geo API)?

Здравствуйте, хочу настроить георедирект. Погуглив нашел SypexGeo, и этот код(который ниже). Все вроде как работает, точнее не выдает ошибок, но не определяет страну и редирект происходит по запасной ссылке(
Помогите нубу) Если есть способ по легче, поделитесь пожалуйста.

<?php

// Подключаем и создаем экземпляр:

include("SxGeo.php");
$SxGeo = new SxGeo('SxGeo.dat');

// Опциональный шаг, пытаемся определить IP пользователя более точно:

function getIP(){
if (!empty($_SERVER['HTTP_CLIENT_IP'])){
//check ip from share internet
$ip = $_SERVER['HTTP_CLIENT_IP'];
}elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
//to check ip is pass from proxy
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}

// Определяем страну и город:

$ip = getIP(); // или $_SERVER['REMOTE_ADDR'];
echo ($SxGeo->getCountry($ip));

echo '';
print_r($SxGeo->getCityFull($ip)); // Вся информация о городе
echo '';

// Т.е если хотите менять ссылки для жителей России, то примерно так:

if($SxGeo->getCountry($ip) == 'AM') {
header('Location: https://ru.wikipedia.org/wiki/Армения');
exit;
}elseif($SxGeo->getCountry($ip) == 'DE') {
header('Location: https://ru.wikipedia.org/wiki/Германия');
exit;
} else {
header('Location: https://ru.wikipedia.org/wiki/ISO_3166-1');
exit;
}

//Страны определяются в стандарте ISO 3166-1 https://ru.wikipedia.org/wiki/ISO_3166-1

?>
  • Вопрос задан
  • 140 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы