首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用会话将完整站点中的循环重定向到移动站点

问使用会话将完整站点中的循环重定向到移动站点
EN

Stack Overflow用户
提问于 2013-07-31 21:55:05
回答 1查看 1.1K关注 0票数 1

我有一个完整的网站,一直在操作系统,电子商务和移动网站是在核心PHP (codeignitor),并在子域的完整版本和移动版本。

例如全站:www.example.com,移动站域名为m.example.com。当用户在移动端打开全站域时,网站会重新定向到合适的移动域,但如果移动用户想要查看全站,则用户可以在移动端查看全站。

我已经使用它完成了重定向http://code.google.com/p/php-mobile-detect/,但它没有使用会话重定向到完整站点或移动站点。我知道我必须使用PHP会话和请求才能让它工作,但我不确定如何在这种情况下使用它们,所以你能建议如何使用会话来解决这个重定向问题吗?

下面是我的代码:

代码语言:javascript
复制
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();
  }
EN

回答 1

Stack Overflow用户

发布于 2013-07-31 22:07:14

从我从github页面得到的信息来看,你应该能够让它像这样工作:

index.php

代码语言:javascript
复制
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

从移动端访问时,如果用户想要完整版本,请使用GET parameter fullscreen=yes (http://example.com?fullscreen=yes)提供指向url的锚点(如果在完整站点上)并检测移动端(不包括在上面的代码中),您可以使用fullscreen=no提供移动版本的链接

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17972411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档