0

我是 PHP 和学习的新手。我正在尝试通过 url 链接传递一个值,但它似乎不起作用。

我传递的链接值是http://www.mysite.com/index.php?id=f

如果下面看到的 ID 不是 F,我想运行一个 js 脚本,但现在当我运行它时。它什么也没做:

<?php
$ShowDeskTop = $_GET['id'];
if (isset($ShowDeskTop)){
    echo $ShowDeskTop;

    if ($ShowDeskTop != "f"){
       echo "ShowDeskTop Value is not F";
               echo "<script type=\"text/javascript\">";
       echo "if (screen.width<800)";
       echo "{";
       echo "window.location=\"../mobile/index.php\"";
       echo "}";
       echo "</script>";  
    };
};
?>

我知道这很容易 PHP 101,但我想不通。我已经尝试了从 w3schools 到 Google 上其他网站的所有方法来寻找答案,但没有运气。有人可以告诉我我做错了什么吗?

谢谢!

4

7 回答 7

2

$ShowDeskTop不一样,$ShowDesktop 变量名区分大小写!

于 2013-01-09T19:30:47.860 回答
1

我想写!=而不是<>

于 2013-01-09T19:30:44.513 回答
1

这永远不会起作用,因为您在检查变量是否存在之后设置了变量。最简单的方法:

<?php
if (isset($_GET['id'])) {
    echo $_GET['id'];

    if ($_GET['id'] != 'f') {
?>
<script type="text/javascript">
    if (screen.width < 800) {
        window.location = "../mobile/index.php";
    }
</script>
<?php
    }
}
?>

我认为 <> 在 PHP 中无效(它在 VB.NET 中 ..) is not 运算符是 != 或 !== (严格/松散比较)。

此外,您不必使用 ; 来关闭 if 语句。

这:

if (expr) {

}

是有效的,而不是这个:

if (expr) {

};
于 2013-01-09T19:32:18.283 回答
1

您有许多问题,包括错误的变量大小写(即变量不匹配)、在变量存在之前检查变量等。您可以简单地执行以下操作:

if (!empty($_GET['id'])) { // note I check for $_GET['id'] value here not $ShowDeskTop
    $ShowDeskTop = $_GET['id']; 
    echo $ShowDeskTop; // note I change case here

    if ($ShowDeskTop !== "f"){  // note the use of strict comparison operator here
       echo "YES, the id doesn't = f";
       echo "<script type=\"text/javascript\">";
            echo "if (screen.width<800)";
            echo "{";
            echo "window.location=\"../mobile/index.php\"";
            echo "}";
       echo "</script>";
    } // note the removal of semicolon here it is not needed and is bad coding practice in PHP - this is basically just an empty line of code
} // removed semicolon here as well
于 2013-01-09T19:39:25.487 回答
0

拳头的东西,你需要;在最后echo $ShowDesktop

而且,什么f意思if ($ShowDeskTop <> "f"){

于 2013-01-09T19:31:53.463 回答
0

使用 strcmp() 而不是 <> 运算符。

尝试

if(!strcmp($ShowDeskTop, "f")){
   echo "YES, the id doesn't = f";
}
于 2013-01-09T19:32:34.860 回答
0
<?php

   $ShowDeskTop = $_GET['id'];     // assign before checking

   if (isset($ShowDeskTop)){

    //echo $ShowDeskTop;             

    if ($ShowDeskTop !== "f"){
       echo "YES, the id doesn't = f";
       echo "<script type='text/javascript'>";
            echo "if (screen.width<800)";
            echo "{";
            echo "window.location.replace('../mobile/index.php');"; // assuming your path is correct
            echo "}";
       echo "</script>";
    }
   }
 ?>
于 2013-01-09T19:40:46.230 回答