首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >手动重定向移动桌面版本

手动重定向移动桌面版本
EN

Stack Overflow用户
提问于 2014-09-30 00:18:51
回答 2查看 130关注 0票数 0

我在我的主页上有这个代码

代码语言:javascript
复制
<?php
 if(isset($_SESSION['mobile'])){
   if($_SESSION['mobile']==1){
     echo '
         <script>
           if( /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) ) {
             window.location = "mobile/index.php";
           }
         </script>';
   }
 }
 else{
   $_SESSION['mobile']=1;
   echo '
         <script>
           if( /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) ) {
             window.location = "mobile/index.php";
           }
         </script>';
 }
?>

在我的网站的移动版本上,为了返回到destop版本,我插入了一个几乎为空的"redirect.php“页面的链接

代码语言:javascript
复制
<?php 
  $_SESSION['mobile']=0; 
  header("location: ../index.php");
  exit;
?>

但我没有得到想要的行为:一旦我用手机进入网站,我会被正确地重定向到移动版,但一旦我点击链接获得桌面版,我就循环回到移动版。我遗漏了什么?

谢谢!:)

EN

回答 2

Stack Overflow用户

发布于 2014-09-30 00:35:25

记得在使用会话之前调用session_start()函数。

最好使用下面的代码来减少代码:

代码语言:javascript
复制
<?php session_start();

if (isset($_GET["desktop"])) {

    // DESKTOP
    $_SESSION["mobile"] = 0;
    ...

} else {

    // MOBILE
    if (!isset($_SESSION["mobile"])) { $_SESSION["mobile"] = 1; }
    if ($_SESSION["mobile"] == 1){ echo '<script>...</script>'; }
    ...

}
?>

并使用?desktop=1链接到主页以切换到桌面版本。

票数 1
EN

Stack Overflow用户

发布于 2014-09-30 00:47:47

根据您当前的代码-您应该有一个单独的会话变量,它告诉您用户已经手动请求了控制。

代码语言:javascript
复制
<?php
if(!$_SESSION['manuall_overide'])
 if(isset($_SESSION['mobile'])){
   if($_SESSION['mobile']==1){
     echo '
         <script>
           if( /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) ) {
             window.location = "mobile/index.php";
           }
         </script>';
   }
 }
 else{
   $_SESSION['mobile']=1;
   echo '
         <script>
           if( /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) ) {
             window.location = "mobile/index.php";
           }
         </script>';
 }
}
?>

<?php 
  $_SESSION['manuall_overide']=1; 
  header("location: ../index.php");
  exit;
?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26104398

复制
相关文章

相似问题

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