我的整个 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/