PHP未定义索引

时间:2013-02-14 04:09:20

标签: php

我正在创建一个PHP表单,用于计算更改中的总金额,例如便士,四分之一,硬币和镍币。代码似乎工作正常,直到我在第29-32行收到未定义的索引错误。有人可以帮助我解决这个问题并告诉我我做错了什么吗?

<head> 
<title>Fill in the form and I will show the greeting. </title>
<style type="text/css">
h1 {font-family:'Times New Roman'; }
</style>

<body bgcolor="orange">  
<form action="Lab6-1.php" method="post" >
<h1>Please enter your coin count and denominations.</h1>
<p>
<h1>Pennies (1 cent):
   <input type="text" size="16" maxlength="20" name="pennies" value="<?php echo $_POST['pennies']?>"/></h1>

<h1>Nickels (5 cents):
    <input type="text" size="16" maxlength="20" name="nickels" value="<?php echo $_POST['nickels']?>"/></h1> 

<h1>Dimes (10 cents):  
    <input type="text" size="16" maxlength="20" name= "dimes" value="<?php echo $_POST['dimes']?>"/></h1>
<h1> Quarters (25 cents):
    <input type="text" size="16" maxlength="20" name= "quarters" value="<?php echo $_POST['quarters']?>"/></h1>
<br /><br />
<input type="submit" value="Calculate Coins" />
<input type="reset" value ="Clear Form" />

<?php
   $pennies = $_POST['pennies']*.01;
   $nickels = $_POST['nickels']*.05;
   $dimes = $_POST['dimes']*.10;
   $quarters = $_POST['quarters']*.25;

   $total = $pennies + $nickels + $dimes + $quarters;

   $money = array ( "Quarters" => $quarters, "Dimes"=> $dimes, "Nickels" => $nickels, "Pennies" => $pennies, "Total" => $total);

   echo "<table border = \"1\" >";


 foreach ( $money as $key => $value ) {
 print("<tr><td> $key </td><td> $value</td> </tr>");  
  } 
 echo "</table>";
?>

</p>
</form>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

这是因为即使在您提交表单之前,最初也是在寻找变量 $_POST['pennies']$_POST['nickels']$_POST['dimes']$_POST['quarters']当时他们不存在。所以你得到了

  

未定义的索引错误

您可以通过将表单提交代码包装在条件

中来避免这种情况

if(isset($_POST['btnSubmit'])) }{

   // code goes here

}

并将提交按钮命名为

<input type="submit" name="btnSubmit" value="Calculate Coins" /> 

答案 1 :(得分:0)

Undefined index表示您的$_POST个数组项之一不存在。例如,它可以是$_POST['quarters']

您应首先检查变量是否存在,如下所示:

$quarters = $_POST['quarters'] ? $_POST['quarters']*.25 : 0;