нужно сделать простой калькулятор по примеру учителя,сверил свой код и учителя больше 10 раз и не нашел ошибку. Вроде как ошибка в переменной $output . Сам я в php полный ноль.
Калькулятор
<html>
<head>
<title></title>
<meta charset="utf-8">
</head>
<body>
<?php
/*КАЛЬКУЛЯТОР*/
if(
isset($_POST['num1']) && is_numeric ($_POST['num1']) &&
isset($_POST['num2']) && is_numeric ($_POST['num2']) &&
isset($_POST['operator']) && !empty ($_POST['operator'])
)
{
$num1=$_POST['num1']*1;
$num2=$_POST['num2']*1;
$operator=$_POST['operator'];
$output ="$num1 $operator $num2 = ";
switch ($operator){
case '+':
$output .=$num1 + $num2;break;
case '-':
$output .=$num1 - $num2;break;
case '*':
$output .=$num1 * $num2;break;
case '/':
$output .=$num1 / $num2;break;
if ($num1 = 0){
echo "Нельзя делить на ноль";
break;
}break;
break;
default:
$output="Неизвестный оператор '$operator'";
}
}
?>
<style>
.calc{
text-align:center;
}
table,th,td{
border:2px solid #000;
border-collapse: collapse;
margin:50px auto;
font-size: 20px;
}
th{
}
</style>
<div class="calc">
<h1>Каклькулятор</h1>
<?php
if(isset ($output)){
print "<p>Результат:$output</p>";
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" menthod="post">
<p>Число 1</p>
<input type="text" name="num1">
<P>Оператор:</P>
<input type="text" name="operator">
<P>Число 2</P>
<input type="text" name="num2"> <br>
<input type="submit" value="Cчитать!">
</form>
</div>
</body>
</html>
Похоже, что ошибка в этой строчке:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" menthod="post">
У вас атрибут называется menthod, а вы, конечно, имели в виду method, поэтому браузер отправляет запрос как GET, следовательно, в массив $_POST
ничего не попадает.
Кроме того, вот в этом фрагменте
case '/':
$output .=$num1 / $num2;break;
if ($num1 = 0){
echo "Нельзя делить на ноль";
break;
}break;
куча ошибок: вы сначала делите, а потом проверяете (для сравнения используется ==
), да еще и не тот операнд (нужно проверять делитель, а не делимое); более того, сравнение бессмысленно, так как будет совершен выход из switch
раньше времени из-за лишнего break
. То есть:
case '/':
if ($num1 == 0) // Если делитель равен нулю
$output = "Нельзя делить на ноль"; // то сохраняем в output сообщение
else
$output .= $num1 / $num2; // иначе производим деление
break;
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Пытаюсь разобраться в указателяхУвидел такие примеры, но не нашёл что они делают
Как сделать так, чтобы при запуске программы сразу graphicsview становился активным и события срабатывалиА то необходимо сначала кликнуть на сцену
Изменяю код, в расчёте, может быть кому-нибудь пригодитсяЗадача: Даны две дроби a/b и c/d