
Где ошибка? PHP. Из-за чего пишет Notice? После ввода количества книг и нажатия Отправить выходит
это. Ваш заказ составил: 20 сказок Андерсона 40 Книг со стихами Пушкина 30 журналов Всего заказано: 90 На сумму: 2,520.00 Notice: A non well formed numeric value encountered in D:\xampp\htdocs\mysite\web_pr5\processorder.php on line 33 налог с продаж составил: 0.36 Notice: A non well formed numeric value encountered in D:\xampp\htdocs\mysite\web_pr5\processorder.php on line 34 Сумма с налогом с продаж: 2.36 А вот и сам код. orderform.php < html> < head> < title>КНИЖНЫЙ МАГАЗИН< /title> < /head> < body> < h1>КНИЖНЫЙ МАГАЗИН< /h1> < h2>Форма заказа< /h2> < form action="processorder.php" method=post> < table border=0> < tr bgcolor=#ccc> < td width=150>Название< /td> < td width=15>Количество< /td> < /tr> < tr> < td>Сказки Андерсона< /td> < td align=center>< input type="text" name="scazki" size=3 maxlength=3>< /td> < /tr> < tr> < td>Стихи А. С. Пушкина< /td> < td align=center>< input type="text" name="ctixi" size=3 maxlength=3>< /td> < /tr> < tr> < td>Журнал «Бизнес» < /td> < td align=center>< input type="text" name="zurnal" size=3 maxlength=3>< /td> < /tr> < tr> < td colspan=2 align=center>< input type=submit value="Отправить заказ">< /td> < /tr> < /table> < /form> < /body> < /html> processorder.php < html> < head> < title>Книжный магазин – Результаты заказа< /title> < /head> < body> < h1>КНИЖНЫЙ МАГАЗИН< /h1> < h2>РЕЗУЛЬТАТЫ ЗАКАЗА< /h2> < ?php $scazki=$_REQUEST['scazki']; $ctixi =$_REQUEST['ctixi']; $zurnal =$_REQUEST['zurnal']; echo "< p>Заказ обработан "; echo date("H:i, jS F"); echo "< br>"; echo "< p>Ваш заказ составил:"; echo "< br>"; echo $scazki." сказок Андерсона< br>"; echo $ctixi." Книг со стихами Пушкина< br>"; echo $zurnal." журналов< br>"; $totalqty = 0; $totalamount = 0.00; define("zena1", 100); define("zena2", 10); define("zena3", 4); $totalqty = $scazki + $ctixi + $zurnal; $totalamount = $scazki * zena1 + $ctixi * zena2 + $zurnal * zena3; $totalamount = number_format($totalamount, 2); echo "< br>\n"; echo "Всего заказано: ".$totalqty."< br>\n"; echo "На сумму: ".$totalamount."< br>\n"; $taxrate = 0.18; // Налог с продаж 18% echo "налог с продаж составил:" .$taxrate*$totalamount ; $totalamount = $totalamount * (1 + $taxrate); $totalamount = number_format($totalamount, 2); echo "< br>Сумма с налогом с продаж: ".$totalamount."< br>\n"; ?> < /body> < /html>

Ответы на вопрос

а вот код пришлось выровнять



Ошибка возникает из-за неправильного использования операторов инкремента и сложения в вашем коде. В строке 33 вы используете оператор инкремента "++" после каждой переменной, что приводит к некорректному поведению. Замените эту строку на:
$totalqty += $scazki + $ctixi + $zurnal;
Аналогично, в строке 34 замените:
$totalamount += $scazki * zena1 + $ctixi * zena2 + $zurnal * zena3;
Также, в строке 38, у вас лишняя точка после двоеточия. Замените эту строку на:
echo "налог с продаж составил: " . $taxrate * $totalamount;
Наконец, в строке 40 вы используете неправильные операторы сложения и инкремента. Замените эту строку на:
$totalamount += $totalamount * (1 + $taxrate);
После внесения этих изменений код должен работать правильно и вы не будете получать сообщения об ошибке "Notice".


Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili