Установить URL-адрес такой же страницы при перенаправлении IP2Location - PullRequest
0 голосов
/ 05 апреля 2020

Я собираюсь использовать перенаправления посетителей по стране, я использую IP2LOCATION

Это мой код:

require_once('vendor/geoplugin.class.php');
$geoplugin = new geoPlugin();
$geoplugin->locate();
$var_country_code = $geoplugin->countryCode;
if ($var_country_code == "IN") {
    header('Location: index.php?lang=in');
}
if ($var_country_code == "MY") {
    header('Location: index.php?lang=my');
}

Я добавил этот код выше в заголовке моего файла index. php проблема в том, что страница постоянно обновляется.

Индекс. php будет правильно перенаправлять на индекс. php? Lang = in, например, но он продолжает обновляться ...

Я пытался выйти; перемена; meta refre sh, session_start (); и другие методы. Мне нужно добавить начало сеанса, зарегистрировать сеанс и установить команду повара ie, только один раз после перенаправления на язык по стране посетителя пользователь сможет после этого изменить язык.

А вот мой код языка:

session_start();
header('Cache-control: private'); 
if(isSet($_GET['lang']))
{
    $lang = $_GET['lang'];
    // register the session and set the cookie
    $_SESSION['lang'] = $lang;
    setcookie("lang", $lang, time() + (3600 * 24 * 30));
}
else if(isSet($_SESSION['lang']))
{
    $lang = $_SESSION['lang'];
}
else if(isSet($_COOKIE['lang']))
{
    $lang = $_COOKIE['lang'];
}
else
{
    $lang = 'en';
}

Как решить эту проблему?

Заранее спасибо

1 Ответ

1 голос
/ 05 апреля 2020

Сохраните ваше местоположение в переменной сеанса, и, если оно уже установлено, сеанс определения местоположения не нужно будет обновлять заново, что приведет к прерыванию перенаправления l oop. Вам не нужен код языка.

session_start();
require_once('vendor/geoplugin.class.php');

if(!$_SESSION['location']){

    $geoplugin = new geoPlugin();
    $geoplugin->locate();
    $var_country_code = $geoplugin->countryCode;

    $_SESSION['location'] = $var_country_code;

    if ($var_country_code == "IN") {

           header('Location: index.php?lang=in');
    }
    if ($var_country_code == "MY") {

            header('Location: index.php?lang=my');
    }

}
...