Цикл перенаправления на полном сайте на мобильный сайт с использованием сеанса

У меня есть полный сайт, который был в OS-commerce, и мобильный сайт на ядре PHP (codeignitor), а также полная версия и мобильная версия на поддомене.

например, полный сайт: www.example.com и домен мобильного сайта m.example.com. когда пользователь открывает полный домен сайта на мобильном устройстве, веб-сайт перенаправляет соответствующий мобильный домен. Но если мобильный пользователь хочет просмотреть полный сайт, пользователь может просмотреть полный сайт на мобильном устройстве.

Я использовал это для завершения перенаправления http://code.google.com/p/php-mobile-detect/, но это не перенаправление на полный сайт или на мобильный сайт с использованием сеанса. Я знаю, что мне нужно использовать PHP SESSIONS и REQUEST, чтобы заставить это работать, но я не уверен, как их использовать в этом случае, поэтому не могли бы вы предложить, как решить эту проблему перенаправления с помощью сеанса?

Вот мой код:

session_start(); 

  include('includes/Mobile_Detect.php');
  $detect = new Mobile_Detect;

 if(isset($_REQUEST['fullsite']) && $_REQUEST['fullsite'] == 'yes')
 {//check if fullsite view request from mobile or website?

    $_SESSION['fullsite']="yes";

    if($detect->isMobile()) {
               $_SESSION['website']="mobile";
    }
    else{
       $_SESSION['website']="computer"; 
    }

    $deviceType = header('Location: https://www.example.com/');
  }
  else
  {
    if($_SESSION['website'] =="mobile"  && $_SESSION['fullsite'] !="yes")
    {
        if($detect->isTablet())
        {
            $deviceType = 'tablet';
        }
        else
        {
            $deviceType = 'phone';
        }

        $deviceType = header('Location: https://m.example.com/');
    }
    elseif($_SESSION['website'] =="computer" && $_SESSION['fullsite'] =="yes")
    {
        $deviceType = 'computer';
        $deviceType = header('Location: https://www.example.com/');
    }
    else{   
        $deviceType = 'computer';
     }

    $scriptVersion = $detect->getScriptVersion();
    session_destroy();
  }

person Jay Kareliya    schedule 31.07.2013    source источник


Ответы (1)


Из того, что я мог получить на странице github, вы сможете заставить ее работать следующим образом:

index.php

session_start();

if ($_GET['fullscreen'] == 'yes') {
    $_SESSION['fullscreen'] = 1;
} else if ($_GET['fullscreen'] == 'no') {
    $_SESSION['fullscreen'] = 0;
}

if (false == isset($_SESSION['fullscreen']) && ($_SESSION['fullscreen'] == 0)) {
    // If session['fullscreen'] has not been set (maybe first visit
    // or the user does not what in fullscree
    // check the device and do redirect
    require_once 'Mobile_Detect.php';
    $detect = new Mobile_Detect();


    // Any mobile device (phones or tablets).
    if ( $detect->isMobile() ) {

    }
    ...
}

// Other code here

При посещении с мобильного устройства, если пользователю нужна полная версия, укажите привязку к URL-адресу с параметром GET fullscreen=yes (http://example.com?fullscreen=yes) Если на полном сайте и обнаруживается мобильная версия (не включенная в приведенный выше код), вы можете предоставить ссылку на мобильную версию с fullscreen=no

person ep0    schedule 31.07.2013