2

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

编辑:这是代码的链接。我不知道如何在这里发布。巴斯宾

<?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>
4

1 回答 1

5

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

很多书籍都使用<?开放标签,而大多数服务器只支持长版本(<?php)。如果是这种情况,那么将所有简单的更改<?<?php就可以了。

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

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

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

于 2012-05-21T22:08:22.993 回答