есть такой код, который должен рассчитывать по данным стоимость дома. на сайте это выглядит как два селекта и поле для ввода метража. результат не выдает. не могу понять, где искать ошибку - в коде калькулятора или что-то не так на самой странице с выводом данных? подскажите, пожалуйста.
<? echo $f_AdminCommon; ?>
<?php
$content = '<h1>Калькулятор</h1>';
if (isset ($_POST['material']) && isset ($_POST['type']) && isset ($_POST['metrov']))
{
$material = $_POST['material'];
$type = $_POST['type'];
$metrov = $_POST['metrov'];
if($material == 'Сосна' && $type == 'Оцилиндрованное бревно') {$price = '6000';}
if($material == 'Сосна' && $type == 'Клееный брус') {$price = '11500';}
if($material == 'Сосна' && $type == 'Лафет') {$price = '8000';}
if($material == 'Кедр' && $type == 'Оцилиндрованное бревно') {$price = '8500';}
if($material == 'Кедр' && $type == 'Клееный брус') {$price = '14200';}
if($material == 'Кедр' && $type == 'Лафет') {$price = '9500';}
if($material == 'Лиственница' && $type == 'Оцилиндрованное бревно') {$price = '9000';}
if($material == 'Лиственница' && $type == 'Клееный брус') {$price = '15500';}
if($material == 'Лиственница' && $type == 'Лафет') {$price = '10500';}
}
$min_metrov = 1;
//Ошибка ввода metrov
$error_metrov = "<p>Пожалуйста, ведите количество кв.Метров.<br>
<br>
<input name='back' type='button' value='Вернуться'
onclick='javascript:history.back();' style='border:0; background-color:#455e17; color:#ffffff;'></p>
";
?>
<?
if(!isset ($_POST['podschet']))
{
$content .= '
<table class="calc"><tr><td>
<form name="edit_main" method="post" action="/calc/">
<p>
<label>Материал:<br>
<select name="material" id="material">
<option>Сосна</option>
<option>Кедр</option>
<option>Лиственница</option>
</select>
</label>
</p>
<p>
<label>Тип сруба:<br>
<select name="type" id="type">
<option>Оцилиндрованное бревно</option>
<option>Клееный брус</option>
<option>Лафет</option>
</select>
</label>
</p>
<p>
<label>Площадь дома (кв.м.):<br>
<input type="text" name="metrov" maxlength="20" id="metrov">
</label>
</p>
<p>
<input name="podschet" type="submit" value="Расcчитать!" class="button">
</p>
</form>
</td><td> </td></tr></table>';
}
else
{
$tsena = $price*$metrov;
$fundament = $metrov*2200;
$kommunikatsii = $metrov*3700;
$krovlya = $metrov*2600;
$otdelka = $metrov*8300;
$price = $tsena+$fundament+$kommunikatsii+$krovlya+$otdelka;
if(strlen($metrov) < $min_metrov) {
$content .= $error_metrov;
}
else {
$content .= '
<table class="calc"><tr><td>
<form name="edit_main" method="post" action="/calc/">
<p>
<label>Материал:<br>
<select name="material" id="material">
<option '.($material == 'Сосна' ? 'selected' : '').'>Сосна</option>
<option '.($material == 'Кедр' ? 'selected' : '').'>Кедр</option>
<option '.($material == 'Лиственница' ? 'selected' : '').'>Лиственница</option>
</select>
</label>
</p>
<p>
<label>Тип сруба:<br>
<select name="type" id="type">
<option '.($type == 'Оцилиндрованное бревно' ? 'selected' : '').'>Оцилиндрованное бревно</option>
<option '.($type == 'Клееный брус' ? 'selected' : '').'>Клееный брус</option>
<option '.($type == 'Лафет' ? 'selected' : '').'>Лафет</option>
</select>
</label>
</p>
<p>
<label>Площадь дома (кв.м.):<br>
<input type="text" name="metrov" maxlength="20" value="'.$metrov.'" id="metrov">
</label>
</p>
<p>
<input name="podschet" type="submit" value="Расчитать!" class="button">
</p>
</form>
</td><td>
<h3>Материал: '.$material.'.</h3>
<h3>Тип сруба: '.$type.'.</h3>
<h3>Площадь дома: '.$metrov.' кв.м.</h3>
<h3>Фундамент: '.$fundament.' руб.</h3>
<h3>Коммуникации: '.$kommunikatsii.' руб.</h3>
<h3>Кровля (песчано-цементная черепица BRAAS): '.$krovlya.' руб.</h3>
<h3>Отделка: '.$otdelka.' руб.</h3>
<h4>Итого: '.$price.' руб.</h4>
</td></tr></table>
';
}
}
print $content;
?>
у тебя форма отправляется по относительной ссылке /calc/ а сам обработчик на той же странице, т.е. в двух местах удали ссылку на страницу обработчика и у тебя всё заработает, ну или обработчик вынеси на эту страницу. Также проверку полей сделай
Виртуальный выделенный сервер (VDS) становится отличным выбором
Нашел простой гайд как сделать админпанель с возможностью постинга и редактирования постовСделал всё как в видео, но добавление и редактирование...
Из соображений безопасности я использую ufw, в нём я открыл порты 80, 443 и 22