1

非常に簡単な質問があります。次の単純なPHPif/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にあると思います。アラートを送信して(またはログに記録するか、選択した方法で)、が699以下の数値screen.widthに評価されることを確認します。

明確にするために、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 に答える