1

我正在尝试(通过 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

4 回答 4

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>';
 ?>
于 2012-10-12T20:21:04.360 回答
0

你的代码是正确的。您一定有一些与php.inior相关的问题apache。通过检查源代码来检查您的<?php代码是否正在转义。. 如果是的话,把这段代码放在最上面 error_reporting(E_ALL);并尝试调试它。

于 2012-10-12T20:32:54.250 回答
0

您的代码可以稍微清理一下,但它应该可以工作。它本质上没有任何问题。我从字面上剪切并粘贴它作为测试,它工作正常。

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

于 2012-10-12T20:15:24.303 回答
-3

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

代替

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

<input type="text" name="radius" size="5">
于 2012-10-12T20:09:33.323 回答