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 に答える