передавая строку для назначения целочисленного значения переменной, почему этот код не работает?

89
6

Строка, которую я пытаюсь передать, - "www.he2media.com/index.php?mobile=false", что я делаю неправильно?

<?PHP

require_once 'Mobile_Detect.php';
$detect = new Mobile_Detect;

$ismobiledevice;
if($_GET['mobile']=== "")
{
$ismobiledevice=0;
}
if($_GET['mobile']==="false")
{
$ismobiledevice=1;
}
if($detect->isMobile()&& empty($ismobiledevice))
{
header("Location:http://m.he2media.com");
}
else
{
header("Location:http://www.he2media.com");
}
?>

спросил(а) 2013-10-16T08:23:00+04:00 6 лет, 11 месяцев назад
1
Решение
90

Ваш, if делает что-то противоположное тому, что он должен делать

 if($_GET['mobile']=== ""){
$ismobiledevice=0;}
if($_GET['mobile']==="false"){
$ismobiledevice=1;}

Это означает, что если url говорит mobile==false, по-прежнему перейти к мобильной версии. Вы можете просто присоединить два оператора if, например:

  if($detect->isMobile()&& $_GET['mobile']!="false"){      
header("Location:http://m.he2media.com");
}else{
header("Location:http://www.he2media.com");
}

ответил(а) 2013-10-16T08:36:00+04:00 6 лет, 11 месяцев назад
41

Фактически вы не передаете строку, вы устанавливаете местоположение заголовка.

Возможно, вы должны добавить пробел между Location: и URL:

header("Location: http://...");

ответил(а) 2013-10-16T08:25:00+04:00 6 лет, 11 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема