【问题标题】:Simple PHP issue, I'm sure简单的PHP问题,我确定
【发布时间】:2012-07-30 16:24:30
【问题描述】:

我刚刚设置了一个新的 Ubuntu 12.04 LTS 64 位服务器,选择了它附带的任何 Apache 软件包。我正在尝试在浏览器中打开这个 index.html 文件:

<html><body><h1>Testing Database</h1>

<?php

$con=mysql_connect("localhost","****","****");
if(!$con) {die('Could not connect: ' . mysql_error());

mysql_select_db("Test", $con);
$result=mysql_query("SELECT * FROM main");
while($row=mysql_fetch_array($result))
{
   echo $row['id'] . " " . $row['name'];
   echo "<br />";
}

mysql_close($con);
?>

</body></html>

我在 MySQL 中创建了一个数据库和表。我制作了一个运行良好的 phpinfo.php 文件(包含&lt;?php phpinfo(); ?&gt;)。但是由于某种原因,Internet Explorer 只显示标题 [Testing Database],而 Chrome 只显示标题,加上:

"; } mysql_close($con); ?>

我在这里学习教程,我的设置有问题吗?我觉得我在这一小段代码中缺少某种括号,但找不到它。

【问题讨论】:

  • 您的服务器是否设置为将 .html 文件扩展名解释为 PHP 文件?尝试将扩展名更改为.php
  • 清除浏览器缓存并重试。
  • @TheZ — 问题是该文件名为 phpinfo.php。
  • @vee 我确实做到了,但我猜是 stackoverflow.com 解析出来的?诡异的。无论如何,它运行良好
  • @armani:下次,在您的网络浏览器中选择“查看源代码”,您会立即注意到您的所有 PHP 代码都显示了:这意味着您的文件中没有执行任何内容。

标签: php mysql apache ubuntu


【解决方案1】:

index.html?

.html 页面不会被解析为 PHP,你需要有 .php 扩展名,或者使用一些 htaccess 来强制它通过 PHP 解析器。

除此之外,您的文件中存在语法错误,请更改为:

<html><body><h1>Testing Database</h1>

<?php

$con=mysql_connect("localhost","****","****");
if(!$con) die('Could not connect: ' . mysql_error());

mysql_select_db("Test", $con);
$result=mysql_query("SELECT * FROM main");
while($row=mysql_fetch_array($result))
{
   echo $row['id'] . " " . $row['name'];
   echo "<br />";
}

mysql_close($con);
?>

</body></html>

注意 { 从这一行中删除:

if(!$con) { die('Could not connect: ' . mysql_error());

【讨论】:

  • OP也可以修改httpd.conf来处理带有php标签的.html页面
  • 别担心,我相信大多数开发人员在学习时也会犯这样的愚蠢错误......我知道我犯了!
  • @Matt:我在测试服务器上,如果可以的话,我希望我的代码尽可能地可移植,而不需要修改配置。但很高兴知道!
【解决方案2】:

线

if(!$con) {die('Could not connect: ' . mysql_error());

缺少一个结束的'}'

【讨论】:

  • 如果这是问题所在,就会出现巨大的解析错误,或者根本没有。
  • 修复了这个问题,但没有改变任何东西。
  • 对。当 PHP 在 OP 的服务器上工作时,这将是问题所在。无论如何,他说“我制作了一个运行良好的 phpinfo.php 文件(包含 )”。具有误导性。
  • @armani - 我希望这不是你对这个(和 MiDo 的)投反对票吗?它们是正确的,即使它们不是您想要的答案。
  • 是的,代码中存在语法错误,但主要错误是服务器未配置为在 .html 文件中执行 PHP。
【解决方案3】:

您在以下行末尾缺少}

if(!$con) {die('Could not connect: ' . mysql_error());}

【讨论】:

  • 如果这是问题所在,就会出现巨大的解析错误,或者根本没有。
  • @Kolink 但事实仍然是,该行缺少 右大括号。我只能希望那是复制时的错误。
【解决方案4】:

您没有安装 PHP,或者您没有调用 PHP 的服务器。

您之所以看到您所看到的,是因为从 &lt;?php&lt;br /&gt; 的所有内容都被视为一个大的无效 HTML 标记。

【讨论】:

  • OP 提到 phpinfo.php 运行良好。
  • 如果 PHP “运行良好”,为什么它没有被解析?
  • 这句话说的是“或者你没有调用PHP的服务器”。这就解释了为什么 PHP 源代码在浏览器中是可见的。
  • @Kolink 因为.html 文件不会被解析为 PHP 脚本
  • @Alexander:错了。如果需要,您可以设置您的 Web 服务器以解析 .htm .html 和 .jpg 文件(或您选择的任何其他扩展名)中的 PHP 代码。
猜你喜欢
  • 2011-10-30
  • 1970-01-01
  • 1970-01-01
  • 2011-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多