Я новичок в 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>
<?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>
Вы ищете функцию is_numeric()
.
Посмотрите: http://php.net/manual/de/function.is-numeric.php
используя функцию is_numberic () в 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'])) { 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"; } } ?>