无效输入上的Php错误消息

时间:2017-02-16 04:40:52

标签: php html html5

我是php的新手我正在尝试打印错误消息如果一个人在该字段中插入任​​何其他内容而不是实数。我希望这里的代码是有意义的,请描述你是如何解决它的,谢谢:

<?php
$result = "";
 class calculator
{
var $a;
var $b;

function checkopration($oprator)
{
    switch($oprator)
    {
        case '+':
        return $this->a + $this->b;
        break;

        case '-':
        return $this->a - $this->b;
        break;

        case '*':
        return $this->a * $this->b;
        break;

        case '/':
        return $this->a / $this->b;
        break;

        default:
        return "Sorry No command found";
    }
}
function getresult($a, $b, $c)
{
    $this->a = $a;
    $this->b = $b;
    return $this->checkopration($c);
}
}

$cal = new calculator();
if(isset($_POST['submit']))
{
     $result = $cal->getresult($_POST['n1'],$_POST['n2'],$_POST['op']);
}
?>

  <form method="post">
  <table align="center">
     <tr>
       <td><strong><?php echo $result; ?><strong></td>
   </tr>
   <tr>
          <td>Enter 1st Number</td>
    <td><input type="text" name="n1"></td>
</tr>

<tr>
    <td>Enter 2nd Number</td>
    <td><input type="text" name="n2"></td>
</tr>

<tr>
    <td>Select Oprator</td>
    <td><select name="op">
        <option value="+">+</option>
        <option value="-">-</option>
        <option value="*">*</option>
        <option value="/">/</option>
    </select></td>
</tr>

<tr>
    <td></td>
    <td><input type="submit" name="submit" value="Submit"></td>
</tr>

 </table>
 </form>

3 个答案:

答案 0 :(得分:1)

<?php
$result = "";
 class calculator
 {
   var $a;
   var $b;

   function checkopration($oprator)
   {
       switch($oprator)
       {
         case '+':
           return $this->a + $this->b;
           break;

         case '-':
           return $this->a - $this->b;
           break;

         case '*':
           return $this->a * $this->b;
           break;

         case '/':
           return $this->a / $this->b;
           break;

         default:
           return "Sorry No command found";
       }
   }
   function getresult($a, $b, $c)
   {
       $this->a = $a;
       $this->b = $b;
       return $this->checkopration($c);
   }
 }

$cal = new calculator();
if(isset($_POST['submit']))
{
  $n1=$_POST['n1'];
  $n2=$_POST['n2'];
  $op=$_POST['op'];
  if(is_numeric($n1)&&is_numeric($n2)){
       $result = $cal->getresult($n1,$n2,$op);
  }else{
    $result="<p style='background-color:#FFCCCC'><b>ERROR: </b>Invalid input</p><br>";
  }
}
?>

  <form method="post">
  <table align="center">
     <tr>
       <td><strong><?php echo $result; ?><strong></td>
   </tr>
   <tr>
          <td>Enter 1st Number</td>
    <td><input type="text" name="n1"></td>
</tr>

<tr>
    <td>Enter 2nd Number</td>
    <td><input type="text" name="n2"></td>
</tr>

<tr>
    <td>Select Oprator</td>
    <td><select name="op">
        <option value="+">+</option>
        <option value="-">-</option>
        <option value="*">*</option>
        <option value="/">/</option>
    </select></td>
</tr>

<tr>
    <td></td>
    <td><input type="submit" name="submit" value="Submit"></td>
</tr>

 </table>
 </form>

答案 1 :(得分:0)

您正在寻找的是is_numeric()功能 看看:http://php.net/manual/de/function.is-numeric.php

答案 2 :(得分:0)

使用php中的is_numberic()函数,您可以检查输入的值是否为数字,如果不是,我们可以返回错误消息

<?php
$result = "";
 class calculator
{
var $a;
var $b;

function checkopration($oprator)
{
    switch($oprator)
    {
        case '+':
        return $this->a + $this->b;
        break;

        case '-':
        return $this->a - $this->b;
        break;

        case '*':
        return $this->a * $this->b;
        break;

        case '/':
        return $this->a / $this->b;
        break;

        default:
        return "Sorry No command found";
    }
}
function getresult($a, $b, $c)
{
    $this->a = $a;
    $this->b = $b;
    return $this->checkopration($c);
}
}

$cal = new calculator();
if(isset($_POST['submit']))
{
    if(is_numeric($_POST['n1']) && is_numeric($_POST['n2'])){
        $result = $cal->getresult($_POST['n1'],$_POST['n2'],$_POST['op']);
    }else{
        $result="please only insert numbers into the calculator";
    }
}
?>