[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка существования $_POST[] через isset
Icarus_1566
Привет!
Есть простой код, выполняющий простые арифметические действия.
Переменные вводятся через Форму и обрабатываются этой же страницей.

<?php
if (isset ($_POST['rectangular_b']) && isset ($_POST['rectangular_l'])
&&
$_POST['rectangular_b'] !=0 && $_POST['rectangular_l'] != 0)
{$rectangular_b = $_POST['rectangular_b'];
$rectangular_l = $_POST['rectangular_l'];
$rectangular_s = $rectangular_l * $rectangular_b;
$rectangular_s_sm = $rectangular_s/100;
$rectangular_s_dm = $rectangular_s/10000;
$rectangular_s_m = $rectangular_s/1000000;
if (isset ($_POST['rectangular_w']))
{$rectangular_w = $_POST['rectangular_w'];
$rectangular_load_dm = $rectangular_w/$rectangular_s_dm;
$rectangular_load_m = $rectangular_w/1000/$rectangular_s_m;}
else {$rectangular_w = 0;
$rectangular_load_dm = 0;
$rectangular_load_m = 0;}}
else {$rectangular_b = 0;
$rectangular_l = 0;
$rectangular_w = 0;
$rectangular_s = 0;
$rectangular_s_sm = 0;
$rectangular_s_dm = 0;
$rectangular_s_m = 0;
$rectangular_load_dm = 0;
$rectangular_load_m = 0;}
?>



<form action="" method="post" enctype="application/x-www-form-urlencoded">
<p>
l =
<input name="rectangular_l" size="5" value="<? echo $rectangular_l; ?>">
b =
<input name="rectangular_b" size="5" value="<? echo $rectangular_b; ?>"></p>
<p>
Вес модели =
<input name="rectangular_w" size="5" value="<? echo $rectangular_w; ?>"></p>
<input
type="submit" name="rectangular_submit" class="submit" value=""
>
</form>



И так в чем проблема... а проблема в том что первое условие обрабатывается
нормально, а вложенное обрабатывается в независимости от выполнения проверки isset ($_POST['rectangular_w'])
А должно быть, если переменная не существует, выполняться else.
Это в конечном результате выражено отсутствием установки значения
по умолчанию 0 в форме для переменной $rectangular_w,
если на момент отправки формы поле с этой переменной было пустым.
Причем в остальном все работает как задумано.
Пробовал не вложенным делать
параллельное условие - результат не лучше. Также заметил что
просто прописав в условии if ($_POST['rectangular_w']), все работает нормально.
Но это вроде как не совсем верное решение? И почему
не работает вариант с isset? Заранее спасибо!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.