Я сделал калькулятор
<?php error_reporting(-1);
ini_set('display_errors', 'On');
header('Content-Type: text/html; charset=utf-8');
?>
<form action="" method="POST" style="border: 1px solid red; width: 400px; float: left;">
<div style="width: 300px;">Введите число 1 <input type="text" name="number1"></div>
<div style="width: 300px;">Введите число 2 <input type="text" name="number2"></div>
<div class="operator" style="padding: 10px 0;">
Выберите знак оператора<br>
<label>плюс <input type="radio" name="op" value="+"></label> |
<label>минус <input type="radio" name="op" value="-"></label> |
<label>умножить <input type="radio" name="op" value="*"></label> |
<label>разделить <input type="radio" name="op" value="/"></label> |
</div>
<input type="submit" name="submit" value="Получить результат">
</form>
<div class="result" style="width: 200px; height: 100px; border: 1px solid red; float: left;">
<span style="display: block; padding: 10px 0;">Результат</span>
<?php
function calc($num1,$num2,$action = '+'){
if(is_numeric($num1) && is_numeric($num2)){
switch($action){
case '+':
return $num1 . ' + '. $num2 . ' = ' . ($num1 + $num2);
break;
case '-':
return $num1 . ' - '. $num2 . ' = ' . ($num1 - $num2);
break;
case '*':
return $num1 . ' * '. $num2 . ' = ' . ($num1 * $num2);
break;
case '/':
if($num2 == 0){
return 'На 0 делить нельзя';
}
else{
return $num1 . ' / '. $num2 . ' = ' . ($num1 / $num2);
}
break;
}
}
else{
return 'Введите число';
}
}
if(isset($_POST['number1'], $_POST['number2'])){
if(isset($_POST['op'])){
echo calc($_POST['number1'], $_POST['number2'], $_POST['op']);
}
else{
echo calc($_POST['number1'], $_POST['number2']);
}
}
?>
</div>
И мне говорят, то, что не указал default из-за этого есть уязвимости для хакеров.
Цитирую:
Допустим я отправлю action="aaa" и произойдет логическая ошибка, так как у тебя отсутствует default. default стоит добавлять, чтобы предусмотреть разное поведение.
Твой вопрос: зачем хакеры подделывают формы? Ну для того, чтобы взламывать сайты. Как раз default бы это исправил
А что можно написать в default, я не знаю.