Подскажите пожалуйста с кодом php Первая часть с определением IP понятна, не понятна как правильно указать несколько условий IF Задача: Если - вопрос №2564045

Подскажите пожалуйста с кодом php Первая часть с определением IP понятна, не понятна как правильно указать несколько условий IF Задача: Если человек заходит с России отправляем на 1.php Если человек заходит с Украины отправляем на 2.php Если человек заходит с Молдовы отправляем на 3.php и т.д. ЕСЛИ зашел ни из одной из указанных стран, то отправляем на 10.php *** <? php **** include_once($_SERVER['DOCUMENT_ROOT']."/SxGeo.php"); $SxGeo = new SxGeo(); $ip=$_SERVER['REMOTE_ADDR']; $country = $SxGeo->getCountry($ip); unset($SxGeo); if($country='RU') { echo include_once("../../sys/ru/1.php"); } if($country='UA') { echo include_once("../../sys/ua/2.php"); } if($country='MD') { echo include_once("../../sys/md/3.php"); } if($country!='RU' or $country!='UA' or $country!='MD') { echo include_once("../../sys/free/10.php"); } ***? > *** Спасибо

Лучший ответ по мнению автора

Вместо второго и третьего if используйте elseif, вместо последнего if просто else. И сравнение через == делайте хотя бы.
Т.е. код вида
if ($country == 'RU') {

...}

elseif ($country == 'UA') {

...
}

else
{

Здесь-если ни одно условие из остальных }

 А вообще, лучше switch.
switch($country) {

case 'RU':…
break;
case 'UA': ...
break;
case 'MD': ...
break;
default: (все остальные страны) ...
break;
}

Главное break не забывайте, иначе получите fall through (погуглите).

И еще, перенаправляйте не include_once, а правильно.

25.08.17
Лучший ответ по мнению автора

Другие ответы


1
if (ThrowResult == 7 || ThrowResult == 11)

1
if (ThrowResult >= 5 && ThrowResult <= 9)
23.08.17

Действительно, я как раз остановился на такой рабочей конструкции:

<?php

include_once($_SERVER['DOCUMENT_ROOT']."/SxGeo.php");

$SxGeo = new SxGeo();

$ip=$_SERVER['REMOTE_ADDR'];

$country = $SxGeo->getCountry($ip);

unset($SxGeo);

 

if($country=='RU')

{ echo 

   include_once(«sys/ru/redir_ru.php»);

}

 

elseif($country=='MD')

{ echo 

   include_once(«sys/md/redir_md.php»);

}

 

elseif($country=='BY')

{ echo 

   include_once(«sys/by/redir_by.php»);

}

 

elseif($country=='KZ')

{ echo 

   include_once(«sys/kz/redir_kz.php»);

}

 

elseif($country=='UA')

{ echo 

   include_once(«sys/ua/redir_ua.php»);

}

 

elseif($country=='AZ' or $country=='AM' or $country=='GE' or $country=='TJ' or $country=='TM' or $country=='UZ')

{ echo 

   include_once(«sys/index/redir_index.php»);

}

 

else

{ echo 

include_once(«sys/index/redir_index.php»); 

}

?>

 

Вот только чем подтягивать файл редиректа? Если include_once не правильно.

Просто файл редиректа в зависимости от серфера сейчас в принципе работает нормально и имеет такую конструкцию:

<html>

<head>

<META http-equiv=«content-type» content=«text/html; charset=utf-8»>

<meta name=«robots» content=«noindex, nofollow»

<title>Вы переходите на Российскую версию сайта</title>

<meta http-equiv=«refresh» content=«4; ru.*****.ru»>

</head>

<body>

<script type=«text/javascript»>

var sec=3;

function Sec()

{

 document.getElementById(«sec»).innerHTML=sec;

  sec--;

  if(sec==1)

  {

 location.replace(«ru.*******.ru»)

  }

  setTimeout('Sec()',3000);

}

</script>

Вы переходите на Российскую версию сайта

<span style=«color:red;font-weight: bold;» id=«sec» name=«sec»>4</span> сек

<script type=«text/javascript»>Sec();</script>

</body>

 

</html>

 

Чем его тогда лучше подтягивать если не include_once 

include_once("../../sys/free/10.php");

25.08.17

Виталий

Читать ответы

Alexander

Читать ответы

Дима

Читать ответы
Посмотреть всех экспертов из раздела Технологии > PHP
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store