2012-07-13 330 views
0

我有这个代码,它有一个错误,但我不明白我出错的地方。有人可以帮忙吗?问题是,我试图显示一个特定的图像来腐蚀文本文件的内容。我觉得我有这部分排序,但是当涉及到显示图像总有一个错误(例如,它永远是绿色的,即使如果statment说otherwize.Here是代码:PHP - 如果和其他语句

<?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']; 
      } 
      ?> 
+0

三江源指点大家指出了这一点:)生病接受第一次的答案只是因为我只能accpept一个.. – Nick 2012-07-13 05:27:15

+1

虽然你不应该在一个文件中混合的担忧,不管怎么说,你可能会发现PHP输入和输出HTML输出有利:'if($ file):?> Dan 2012-07-13 05:56:39

回答

4

是有区别的。比较两个实例,并指定一个到另一个之间

请参见下面的行从您的片段,看看你可能会看到错误与上面的线索:

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),这将$file值比较true

+0

干杯:)现在开始! – Nick 2012-07-13 05:28:16

+1

+1为扰流板! :))) – alfasin 2012-07-13 05:30:32

+0

@Nicholas没问题的队友,很高兴能成为服务! – 2012-07-13 05:32:31

3

您使用一个单独的=,它用于分配变量时,不进行比较。在检查两个值是否相等时,请使用==

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

希望帮助

1

应该==检查条件。

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

不仅你使用单个“=”,而且还将它与“真实”(连接空间!)进行比较。我会改变代码:

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