为什么我的PHP脚本的一半以文本形式回显?

时间:2013-06-25 17:48:13

标签: php

我在我的Linux环境中尝试了相同的脚本(我没有在Windows上运行),它运行得很完美。脚本的要点(尽管不相关)是打印出表的内容。

脚本如下:

table_contents.php

<?
$user="root";
$password="";
$database="newtest";
$con = mysqli_connect(localhost,$user,$password,$database);
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }
$query="SELECT * FROM contacts";
$result = mysqli_query($con,$query);

$num = mysqli_num_rows($result); // COUNT for FOR LOOP

echo '<table border=\'1\'>
<tr>
<th>Firstname</th>
<th>Lastname</th>
</tr>'; //This is where it starts printing out everything.

while($row = mysqli_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row['first'] . "</td>";
  echo "<td>" . $row['last'] . "</td>";
  echo "</tr>";
  }

mysqli_close($con);
?>

table_contents.php在我的浏览器上显示以下行:

Firstname Lastname '; while($row = mysqli_fetch_array($result)) { echo ""; echo "" . $row['first'] . ""; echo "" . $row['last'] . ""; echo ""; } mysqli_close($con); ?>

指示上面脚本中的注释行是将要显示的所有内容抛出的点。

为什么会造成这种情况,我该如何解决?

2 个答案:

答案 0 :(得分:8)

您的服务器未配置为接受短标记(<?)。因此,浏览器会看到从<?到第一个>的所有内容都是非常长,非常无效的HTML标记。之后的任何事情都被视为文本。

您应该使用完整的<?php来打开PHP代码块。

答案 1 :(得分:1)

尝试使用<?php而不是使用<?,或者,如果您不想更改脚本:更改php.ini中的选项short_open_tag(设置为on)