为什么给定的PHP文件中没有输出

时间:2012-10-12 20:01:06

标签: php html

我试图计算(通过PHP文件)圆的直径,面积和圆周,其半径由用户在html文件中给出。用户给出半径值,PHP脚本计算上述数量。问题是当我执行程序时,html接受输入,但PHP脚本没有显示输出。

代码如下: -

circle.html: -

<html>
  <head>
     <title>Circle</title>
  </head>
  <body>
   <form method="GET" action="circle1.php">
    <center>
    <h1>Circle</h1>
    <table border= 2 width=200>
      <tr align=center>
        <td>Radius</td>
        <td><input type="text" name=radius size=5></td>
      </tr>
      <tr align=center>
        <td colspan=2>
          <input type="submit">
          <input type="reset">
        </td>
      </tr>
    </table>
    </center>
   </form>
 </body>
</html>

circle1.php: -

<html>
  <head>
     <title>Circle</title>
  </head>
  <body>
     <center>
     <h1>Circle</h1>
     <?php
        define("PI",3.14159,TRUE);
        GLOBAL $d,$c,$a,$r;
        $r=$_GET['radius'];
        $d=2*$r;
        $c=2*PI*$r;
        $a=PI*$r*$r;
     ?>
     <table border = 2 width=200>
        <tr>
           <td>Diameter</td>
           <td><?php echo $d; ?></td>
        </tr>
        <tr>
           <td>Circumference</td>
           <td><?php echo $c; ?></td>
        </tr>
        <tr>
           <td>Area</td>
           <td><?php echo $a; ?></td>
        </tr>
     </table>
     <a href="circle.html"><h2>Back</h2></a>
     </center>
   </form>
   </body>
</html>
抱歉这么长的帖子。任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:1)

某些服务器设置(如各种Amazon Linux AMI)要求您通过php打印功能(如echo)输出HTML以正确执行。如果您有这种类型的设置,那么在输出所有客户端 HTML之前,您需要执行服务器端 PHP代码。

尝试 circle1.php

<?php
    define("PI",3.14159,TRUE);
    GLOBAL $d,$c,$a,$r;
    $r=$_GET['radius'];
    $d=2*$r;
    $c=2*PI*$r;
    $a=PI*$r*$r;
echo'
<html>
  <head>
     <title>Circle</title>
  </head>
  <body>
     <center>
     <h1>Circle</h1>
     <table border="2" width="200">
        <tr>
           <td>Diameter</td>
           <td>'.$d.'</td>
        </tr>
        <tr>
           <td>Circumference</td>
           <td>'.$c.'</td>
        </tr>
    <tr>
           <td>Area</td>
           <td>'.$a.'</td>
        </tr>
     </table>
     <a href="circle.html"><h2>Back</h2></a>
     </center>
   </form>
   </body>
</html>';
 ?>

答案 1 :(得分:0)

您的代码可能会被清理一下,但它应该可以正常工作。它没有任何本质上的错误。我把它作为测试切割并粘贴,它工作正常。

如果第一页(纯HTML)有效,但第二页(circle1.php)没有任何结果,那么首先要检查的是你的网络服务器是否配置为使用PHP以及{{1}的路径是准确的,因为底线是您的PHP解析器不在循环中。

答案 2 :(得分:0)

您的代码是正确的。您必须遇到与php.iniapache相关的问题。通过检查源代码来检查您的<?php代码是否正在逃逸。 。如果是,请将此代码放在顶部error_reporting(E_ALL);并尝试调试它。

答案 3 :(得分:-3)

您需要使用引号封装输入属性。

替换

<input type="text" name=radius size=5>

使用

<input type="text" name="radius" size="5">