强制“访问完整网站”链接以显示完整网站

时间:2013-09-24 20:46:52

标签: javascript php redirect mobile

这是我的代码。有人遇到了PHP重定向的问题,所以我只是通过一个JS中的一个并注释掉另一个。

因此,当我使用手机(WP8)时,如果我“更喜欢移动网站”,我会被困在移动网站“m.smsalem.com”上,即使使用下面的代码。但是,如果我将其更改为“首选桌面网站”,我首先获得移动网站,可以点击“访问完整网站”,然后我可以查看常规网站。

如果他们点击该链接,那么强制那些“喜欢移动网站”的用户还可以访问常规网站的任何其他操作吗?

<?php
include 'http://smsalem.com/Mobile_Detect.php';
$detect = new Mobile_Detect();

if(strpos($_SERVER['HTTP_REFERER'], 'm.smsalem.com')){
    setcookie("noMobile", true, time()+86400);  /* expire in 1 hour */
}

if ($detect->isMobile()) {
    if(!isset($_COOKIE['noMobile'])){
        ?>
        <script type="text/javascript">
            if (screen.width <= 700) {
            window.location = "http://m.smsalem.com";
        }
    </script>
    <?php
        //header('Location: m.smsalem.com');
        //exit(0);
      }
} ?>

1 个答案:

答案 0 :(得分:0)

就像Marc B已经提到的那样,在你刷新之前,你设置的cookie是不可用的。如果您只将Cookie设置为一小时,那么为什么不使用直接可用的SESSION

您的代码将如下所示:

<?php
include 'http://smsalem.com/Mobile_Detect.php';
$detect = new Mobile_Detect();

if(strpos($_SERVER['HTTP_REFERER'], 'm.smsalem.com')){
    $_SESSION["noMobile"] = true;
}

if ($detect->isMobile()) {
    if(!isset($_SESSION["noMobile"])){
        ?>
        <script type="text/javascript">
            if (screen.width <= 700) {
            window.location = "http://m.smsalem.com";
        }
    </script>
    <?php
        //header('Location: m.smsalem.com');
        //exit(0);
      }
} ?>

我个人会使用PHP header()来重定向用户。但是,在重定向之前,您将无法检查屏幕宽度。