1

我有什么应该是一个非常简单的问题。我正在使用以下简单的 PHP if/else 语句。当nomobile未定义或不等于“true”时,应该执行下面显示的 javascript。如果它等于 true,那么它不应该执行。但是,即使nombobile=true,javascript 也会执行。可能有一个小错字搞砸了一切,但我让自己发疯,试图找出问题所在,却无法弄清楚。

<?php
  if ($_GET["nomobile"]!="true")
    {echo '
    <script type="text/javascript">
    if (screen.width <= 699) {
    document.location = "http://www.heliohost.org/m/";
    }
    </script>';}
  else {} ?>
4

4 回答 4

2

可能是您没有检查是否设置了 $_GET 值?把你的这个陈述转换成代码应该会产生这样的结果:

当 nomobile 未定义或不等于“true”时

if (!isset($_GET["nomobile"]) || $_GET["nomobile"] != "true"){ ... }

如果未设置,可能会出现问题。

我希望这会有所帮助!

于 2012-08-07T18:16:28.580 回答
1

我认为问题出在您的 Javascript 上。通过警告它(或记录它或您选择这样做)来验证其screen.width评估为小于或等于 699 的数字。

澄清一下,当我尝试浏览http://www.heliohost.org/?nomobile=true时,我在您的代码中看到了 Javascript。如果我尝试浏览http://www.heliohost.org/http://www.heliohost.org/?nomobile=foo,则 Javscript 不存在。这告诉我您的 Javascript 没有按照您的预期执行,而不是您的 PHP 代码有问题。

于 2012-08-07T18:29:47.293 回答
0
if(!isset($_GET['nomobile']) || (isset($_GET['nomobile']) && $_GET['nomobile'] != "true")){
    echo '<script type="text/javascript">
    if (screen.width <= 699) {
        document.location = "http://www.heliohost.org/m/";
    }
    </script>';
}
于 2012-08-07T18:17:00.243 回答
-2

删除双引号。

<?php
    if ($_GET["nomobile"]!=true) {
        echo '<script type="text/javascript"> if (screen.width <= 699) {  document.location = "http://www.heliohost.org/m/"; } </script>';
    }
    else {}
?>
于 2012-08-07T18:17:58.197 回答