0

私はこのコードを持っていて、そこにバグがありますが、どこが間違っているのかわかりません。誰か助けてもらえますか?問題は、テキストファイルの内容に対応するように特定の画像を表示しようとしていることです。私はその部分を並べ替えたと思いますが、画像の表示に関しては常にバグがあります(たとえば、ifステートメントがotherwizeと言っている場合でも常に緑色です。コードは次のとおりです。

<?php
            if (empty($_GET['unit'])) {
            $output="Please Enter A Unit Number";
            echo $output;
            }
            else {
                $filepathhalf = "/data/";
                $file = "false";
                $date = date("Ymd");
                $unitnum = $_GET['unit'];
                $ext = ".txt";
                $filepath = $filepathhalf.$unitnum.$date.$ext;
                echo $filepath;
                echo $file;
                if(file_exists($filepath))
                {
                    $fh = fopen($filepath, 'r');
                    $file = fread($fh, 5);
                    fclose($fh);
                }
                echo $file; //This echo comes back as false as set but the green.png image still displays.
                if ($file = "true ")
                {
                    echo "<img src=\"images/green.png\" width=\"15\" height=\"15\" />";
                }                   
                else 
                {
                    echo "<img src=\"images/red.png\" width=\"15\" height=\"15\" />";
                }
                echo $_GET['unit']; 
            }
            ?>  
4

5 に答える 5

4

2 つのインスタンスを比較することと、一方を他方に割り当てることには違いがあります。

スニペットから以下の行を見て、上記の手がかりでエラーを見つけられるかどうかを確認してください。

if ($file = "true ")
{
  echo "<img src=\"images/green.png\" width=\"15\" height=\"15\" />";
}                   
else 
{
  echo "<img src=\"images/red.png\" width=\"15\" height=\"15\" />";
}

それ以外の場合は、下のスポイラーにマウスを合わせてください!

問題に関する説明が必要な場合は、同じことをしてください...

$file = "true "は常に true と評価されます。最初に文字列"true "が割り当てられ、次に の値 が評価されます。 の値をと比較する を探している可能性が最も高いでしょう。$file$file

if($file == true)$filetrue

于 2012-07-13T05:24:28.933 に答える
3

=変数を比較するのではなく、変数を割り当てるときに使用される単一の を使用します。2 つの値が等しいかどうかを確認する場合は、 を使用します==

于 2012-07-13T05:24:46.970 に答える
2
  if ($file == true)
  {
          echo "<img src=\"images/green.png\" width=\"15\" height=\"15\" />";
  }   

それが役立つことを願っています

于 2012-07-13T05:25:05.700 に答える
1

状態を==確認するためのものです。

 if ($file != "false")
 {
   echo "<img src=\"images/green.png\" width=\"15\" height=\"15\" />";
 } 
于 2012-07-13T05:25:25.470 に答える
1

単一の「=」を使用しているだけでなく、それを「true」(連結されたスペースで!) と比較しています。コードを次のように変更します。

if ($file === true)
{
   echo "<img src=\"images/green.png\" width=\"15\" height=\"15\" />";
}
于 2012-07-13T05:25:27.957 に答える