为什么我的评论会导致我的代码在浏览器中用PHP奇怪地显示?

时间:2009-03-28 12:03:29

标签: php comments

从什么时候开始:

//echo "[$sql][$result][$rows][$e]<BR>";

导致错误?此评论后面的代码在浏览器中作为源被spwewed! 请记住我每天使用PHP,我以前从未见过这个!我正在将一个古老的php应用程序从一个旧的Win2k盒移植到一个新的Windoze 2003服务器 - apache 2.2,mysql 5.1.32,php 5.2.9,而且该应用程序正在轰炸所有地方因为到处都注释掉了代码。 任何开关都会阻止它对评论如此敏感? 我知道//后跟?>然后代码会中断,因为?>终止了php,但是BR标签?当然不是。

更多细节:代码块是

if ($condition){
  // do stuff
} else {
  $sql="select * from person where percode='$person'";
  $result=mysql_db_query($db,$sql,$conn);
  @$rows=mysql_num_rows($result);
  $e=mysql_errno()." ".mysql_error();
  //echo "[$sql][$result][$rows][$e]<br>";
  $perfname=mysql_result($result,0,"perfname");
  $persname=mysql_result($result,0,"persname");
  $peraddr1=mysql_result($result,0,"peraddr1");
}
?>

评论的代码运行正常。评论后的代码到?&gt;被呕吐到浏览器中。之后,HTML显示很好。删除评论(甚至只是BR周围的&lt;和&gt;使代码工作正常。

1 个答案:

答案 0 :(得分:3)

您可以在要迁移到的新服务器的php.ini文件中关闭short open tag设置。如果关闭此设置,则会忽略所有<?标记,并且仅在代码之间进行编码 完整

<?php?>标记被解析为PHP代码。查看该设置是否已关闭,如果将其设置为开启,则可以修复该设置。

如果没有,请检查您是否在评论之前的任何地方错误地'?>。此外,共享完整的代码块将有所帮助。