Не срабатывает вывод текста Неизвестный оператор ( и подставиться должно $rez). если неверно ввести что-то вообще ничего не выводится, а должно выводится. PHP: <?php if(isset($_POST['chislo1']) && isset($_POST['chislo2']) && is_numeric($_POST['chislo1']) && is_numeric($_POST['chislo2']) && !empty($_POST['znak']) ) { $ch1 = $_POST['chislo1']*1; $ch2 = $_POST['chislo2']*1; $znak = $_POST['znak']; $rez = ''; switch($znak){ case '+': $rez = $ch1 + $ch2; break; case '-': $rez = $ch1 - $ch2; break; case '*': $rez = $ch1 * $ch2; break; case '/': if($ch2!=0){ $rez = $ch1 / $ch2; }else { echo 'Деление на ноль'; } break; default: echo "Неизвестный оператор $rez"; } echo $rez; echo '<hr width="100%" color="blue" />'; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <head><title>Моя страница</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <input type="text" name="chislo1"/><br /> <input type="text" name="znak"/><br /> <input type="text" name="chislo2"/><br /> <input type="submit" value="Вычислить" > </form> </body> </html>
Просто вот подобный код и он срабатывает, а мой код не выводит ничего если не правильно ввел или вообще ничего не ввел и нажал ЭНТЕР. PHP: <?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 '/': // В случае деления не забываем проверить, // чтобы делитель не был равен нулю if($num2 == 0){ $output = 'Деление на ноль запрещено!'; }else{ $output .= $num1 / $num2; } break; default: $output = "Неизвестный оператор '$operator'"; } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru"> <head> <title>Калькулятор</title> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> </head> <body> <h1>Калькулятор</h1> <?php // Если результат существует, выводим его if(isset($output)){ print "<p>Результат: $output</p><hr />"; } ?> <!-- [url=http://www.softtime.ru/info/articlephp.php?id_article=69]http://www.softtime.ru/info/articlephp. ... article=69[/url] --> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> Число 1:<br /> <input type="text" name="num1" /><br /><br /> Оператор:<br /> <input type="text" name="operator" /><br /><br /> Число 2:<br /> <input type="text" name="num2" /><br /><br /> <input type="submit" value="Считать!" /> </form> </body> </html>
Если заменить мою строку на эту PHP: default: echo "Неизвестный оператор $znak"; Если в первое поле ввести бурду, а во второе и третье ничего не ввести, при нажатии ЭНТЕР ничего на экран не выведется
$ch1 = $_POST['chislo1']*1; можно вопрос , зачем ты на 1 уножаешь ? прогоняй регуляркой на цифры в строке , тримай от пробелов, проверяй на пустоту , в общем прежде чем считать убедись что данные пригодны