PHP IF / Else不工作

时间:2012-08-07 18:10:54

标签: php if-statement

我有一个非常简单的问题。我使用以下简单的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 个答案:

答案 0 :(得分:2)

你是不是在检查是否设置了$ _GET值?把你的这个陈述转换成代码应该产生这个:

  

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

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

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

我希望有所帮助!

答案 1 :(得分: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代码存在问题。

答案 2 :(得分: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>';
}

答案 3 :(得分:-2)

删除双引号。

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