1. Мне необходимо что бы в случае не заполнения формы name="ch1", name="ch2", name="ch3", возникала ошибка, но введенные значения не исчезали. Знаю что это решается с помощью сессии, но никак не могу понять как это реализовать в данном примере.
2. if(!preg_match("|^[\d]*$|", $_POST['ch1'])) принимает только целые числа, а на разделенные запятой или точкой (2,2 или 3.5) ругается, но ведь площадь указывается не в целых числах.
Я понимаю что сегодня пятница, и Вам не до этого, но тем не менее очень прошу Вас помочь! :)
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<h2 class=s2>Расчет площади</h2>
<form enctype='multipart/form-data' method="post">
<div align=left>
<p>Введите длину:</p> <input type="text" name="ch1"><br>
<p>Введите ширину:</p> <input type="text" name="ch2"><br>
<p>Введите высоту:</p> <input type="text" name="ch3">
<br>
<br>
<br>
<button>Расчитать</button>
</div>
</form>
<?php
$a = $_POST ['ch1'];
$b = $_POST ['ch2'];
$c = $_POST ['ch3'];
if(!preg_match("|^[\d]*$|", $_POST['ch1']))
{
exit("Не верен формат числа.");
}
if(!preg_match("|^[\d]*$|", $_POST['ch2']))
{
exit("Не верен формат числа.");
}
if(!preg_match("|^[\d]*$|", $_POST['ch3']))
{
exit("Не верен формат числа.");
}
if ($a+$b+$c==0)
{
echo '';
exit();
}
if ($a==0 or $b==0 or $c==0)
{
echo 'Укажите размеры помещения';
exit();
}
$rezult=$a*$b*$c;
echo 'Площать равна '.$rezult.' куб. м.';
?>
</body>
</html>