PHP 将无法正确执行并且仅显示为文本

标签 php

我的整个 PHP 页面仅显示为文本,并且没有执行任何 PHP 代码。这很奇怪,因为当我使用 <? phpinfo(); ?> 测试它时在 test.php 文件中,我获得了成功的测试,并且它可以在我的 Apache 服务器上运行。然而,当我尝试做其他事情时。它仅显示为文本。

编辑:这是代码的链接。我不知道如何将其发布在这里。 Pastebin

<?php
  // create short variable names
  $tireqty = $_POST['tireqty'];
  $oilqty = $_POST['oilqty'];
  $sparkqty = $_POST['sparkqty'];
  $find = $_POST['find'];
?>
<html>
<head>
  <title>Bob's Auto Parts - Order Results</title>
</head>
<body>
<h1>Bob's Auto Parts</h1>
<h2>Order Results</h2>
<?php

    echo "<p>Order processed at ".date('H:i, jS F Y')."</p>";

    echo "<p>Your order is as follows: </p>";

    $totalqty = 0;
    $totalqty = $tireqty + $oilqty + $sparkqty;
    echo "Items ordered: ".$totalqty."<br />";


    if ($totalqty == 0) {

      echo "You did not order anything on the previous page!<br />";

    } else {

      if ($tireqty > 0) {
        echo $tireqty." tires<br />";
      }

      if ($oilqty > 0) {
        echo $oilqty." bottles of oil<br />";
      }

      if ($sparkqty > 0) {
        echo $sparkqty." spark plugs<br />";
      }
    }


    $totalamount = 0.00;

    define('TIREPRICE', 100);
    define('OILPRICE', 10);
    define('SPARKPRICE', 4);

    $totalamount = $tireqty * TIREPRICE
                 + $oilqty * OILPRICE
                 + $sparkqty * SPARKPRICE;

    echo "Subtotal: $".number_format($totalamount,2)."<br />";

    $taxrate = 0.10;  // local sales tax is 10%
    $totalamount = $totalamount * (1 + $taxrate);
    echo "Total including tax: $".number_format($totalamount,2)."<br />";

    if($find == "a") {
      echo "<p>Regular customer.</p>";
    } elseif($find == "b") {
      echo "<p>Customer referred by TV advert.</p>";
    } elseif($find == "c") {
      echo "<p>Customer referred by phone directory.</p>";
    } elseif($find == "d") {
      echo "<p>Customer referred by word of mouth.</p>";
    } else {
      echo "<p>We do not know how this customer found us.</p>";
    }

?>
</body>
</html>

最佳答案

我愿意赌 10 美元 test.php使用<?php ,更改后的代码使用 <? ,而服务器不将其理解为开始标记,因为 short_open_tags在 php.ini 中已关闭。

很多书都使用<?对于开放标签,而大多数服务器仅支持长版本( <?php )。如果是这样的话,那么改变所有简单的<?<?php就可以了。

PHP 代码仅在 1 种情况下暴露:当 PHP 解释器未将其识别为 PHP 代码时。这可能仅由两个问题引起:

  • Apache(或其他 http 服务器)的配置错误,根本不处理 php 文件。
  • PHP 文件中的开放标记错误,因此 PHP 不知道代码何时开始。

如果文件是 *.php,如果 Apache 通过 PHP 解释器打开服务 *.php 文件,如果使用标准开放标签或 PHP 配置为使用其他类型的已用标签,并且如果您正在访问通过浏览器访问此 PHP 文件,PHP 在任何情况下都不会公开此代码。

关于PHP 将无法正确执行并且仅显示为文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10693298/

相关文章:

php - 从 6.4.8.2 更新到 6.4.13.0 后,ImageCmsElementResolver 中的参数太少错误

php - 如何创建用户历史记录?

php - 跨多个网站(多个数据库)的 SSO

javascript - 到达最后一个选项卡时提交多选项卡页面

php - 通过 sFTP 在远程开发服务器上处理 PHP 项目

php - 捕获行的 ID 以用作表的名称

php - 在数据库更新时通过 Jquery Ajax 跟踪和操作内容

php memory_get_peak_usage() 包括 mysql 内存使用情况?

php - PHP 中的捷克语字符编码

php - 如何就地实例化 stdClass