简单的PHP计算器错误(新的!)

时间:2014-12-11 19:19:24

标签: php

当我说'新'时,我的意思是这是我第一次尝试使用php。

反正。我一直收到这个错误通知"未定义的索引:在第33行和第34行输入c:\ x \ calculator.php,但它仍然回响"你忘了选择mathtype!"并且计算器工作正常。仅当我没有为数学类型(+ - / *)选择任何单选框时,才会出现此错误通知。

//Part of the form
<form action="calculator.php" method="post">
<input type="text" name="1stnumber">
<input type="text" name="2ndnumber">
<input type="radio" name="type" value="addition">
<input type="radio" name="type" value="subtraction">
<input type="submit" name="send">

<?php
//My variables
$number = $_POST['1stnumber']
$numbero = $_POST['2ndnumber']
$mathtype = $_POST['type'] /* **<-line 33** */

//The calculation part of the form here, which is working

//Tell the user if he didn't pick a math type (+-)
if(is_null($mathtype)){
  echo "You forgot to pick mathtype!"
  }
?>

也尝试使用elseif ..我不知道第33行和if(is_null())行之间的错误!

对不起,如果它看起来很糟糕,凌乱,或者某些事情没有意义。也可能是一些错别字。任何帮助表示赞赏。

4 个答案:

答案 0 :(得分:1)

在捡起之前,只需检查是否发布了类型

if(isset($_POST['type']))
{
   $mathtype = $_POST['type'];
}
else
{
    echo "Type was not selected";
}

答案 1 :(得分:1)

使用checked属性设置默认选定选项。

<label><input type="radio" name="type" value="addition" checked="checked"> +</label>
<label><input type="radio" name="type" value="subtraction"> -</label>

不要忘记html中的输入需要标签,如果省略,你可以使用placeholder属性,但type="radio"显然无法做到这一点。因此将input包裹在label中,旁边有文字说明,例如+或 -

此外,这是一个复制和粘贴错误,bc所有php语句必须以分号;

终止
$number = $_POST['1stnumber'];       // <- terminate
$numbero = $_POST['2ndnumber'];      // <- terminate
$mathtype = $_POST['type'];          // <- terminate

echo "You forgot to pick mathtype!"; // <- terminate

答案 2 :(得分:0)

检查表单是否已发布:

<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
    //My variables
    $number = $_POST['1stnumber']
    $numbero = $_POST['2ndnumber']
    $mathtype = $_POST['type'] /* **<-line 33** */

    //The calculation part of the form here, which is working

    //Tell the user if he didn't pick a math type (+-)
    if(is_null($mathtype)){
      echo "You forgot to pick mathtype!"
      }
}
?>

此外,is_null检查也将在第一次加载时执行(在表单发布之前)。

答案 3 :(得分:0)

检查您尝试从$ _POST中检索的变量是否已实际设置,这是一个很好的做法,请尝试以下方法:

<?php
    //My variables
    if (isset($_POST['1stnumber'])) {
        $number = $_POST['1stnumber'];
    }
    if (isset($_POST['2ndnumber'])) {
        $numbero = $_POST['2ndnumber'];
    }
    if (isset($_POST['type'])) {
        $mathtype = $_POST['type']; /* **<-line 33** */
    }

    //The calculation part of the form here, which is working

    //Tell the user if he didn't pick a math type (+-)
    if (is_null($mathtype)) {
        echo "You forgot to pick mathtype!";
    }
?>