使用會話將整個站點中的循環重定向到移動站點 (Redirect loop in full site to mobile site using session)


問題描述

使用會話將整個站點中的循環重定向到移動站點 (Redirect loop in full site to mobile site using session)

I have a full site that has been in OS‑commerce and mobile site is in core PHP (codeignitor), and full version and  a mobile version on sub‑domain. 

e.g  full site: www.example.com  and mobile site domain is  m.example.com. when user open full site domain in mobile, then website redirect proper mobile domain, But if mobile user want to view full site then user can view fullsite in mobile.

I have used this to complete the redirect http://code.google.com/p/php‑mobile‑detect/,  But it is not redirecting to the full site or to the mobile site using session. I know that I have to use PHP SESSIONS and REQUEST in order to get this to work but I am not sure how to use them in this instance, so could you please suggest how to solve this redirecting issue using session?

Here my code is:

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();
  }

參考解法

方法 1:

From what I could get from github page you should be able to make it work like this:

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

When visiting from mobile, if the user wants the full version, provide an anchor to url with GET parameter fullscreen=yes (http://example.com?fullscreen=yes) If on full site and detect mobile (not included in code above), you could provide a link to mobile version with fullscreen=no

(by Jay Kareliyaep0)

參考文件

  1. Redirect loop in full site to mobile site using session (CC BY‑SA 3.0/4.0)

#oscommerce #codeigniter #PHP #url-redirection #session






相關問題

重寫問題 (Rewrite problems)

用於將 OScommerce 網站轉換為 facebook 商店的插件 (plugin for converting OScommerce site to facebook store)

Prestashop 在註冊表單中添加額外字段 (Prestashop Add extra fields to registration form)

無法訪問 oscommerce 中的前端 (Can't access Front end in oscommerce)

如何將重定向添加到 oscommerce 產品頁面 (how add redirect to oscommerce product page)

域和子域之間的不同會話 (Different session between domain and subdomain)

使用會話將整個站點中的循環重定向到移動站點 (Redirect loop in full site to mobile site using session)

osCommerce mysql 導出到 Excel (osCommerce mysql export to Excel)

在 OSCommerce 中更改“主頁”徽標的 URL 目標 (Changing URL destination for "home" logo in OSCommerce)

我怎麼知道 osCommerce 的版本是什麼? (How can i know what is the release of osCommerce?)

301 重定向舊 osCommerce 鏈接的最佳方式 (Best way to 301 redirect old osCommerce links)

Oscommerce語言安裝問題 (Oscommerce language install problem)







留言討論