calc.php
<body>
<form method="get" action="calcaction.php">
<p align="left">введите стаж<br />
<input type="text" name="Str" /><br />
Введите зарплату за 2000-2001 <br />
<input type="text" name="zp" /><br />
введите среднюю зарплату<br />
<input type="text" name="szp" /></p>
<p align="left">выберите год<br />
<br />
<select name="T">
<option value="144">01.01.2002</option>
<option value="150">01.01.2003</option>
<option value="156">01.01.2004</option>
<option value="162">01.01.2005</option>
</select> </p>
<input type="submit" name="op" value="рассчитать" />
</form>
<p align="left">Выполнено: <b><?php include('ans.html'); ?></b></div>
calcaction.php
<?php
$Str = $_GET['Str'];
$zp = $_GET['zp'];
$szp = $_GET['szp'];
$op = $_GET['op'];
$bch = 1794;
$sk = 0.55;
$StrStaj=$sk+(($Str-20)*0.01);
if ($Str<20){$StrStaj=0.55;}
if($Str>75){$StrStaj=0.75;}
$z=$zp/$szp;
if ($z>1.2) $z=1.2;
$rp=$StrStaj*$z*1671;
if ($rp<660) $rp=660;
$pk=($rp-$bch)*$T;
if ( $op == "Рассчитать" )
{
$filename = 'ans.html';
$answare = ($bch+$pk/$T);
if (is_writable($filename)) {
if (!$handle = fopen($filename, 'r+')) {
echo "Cannot open file ($filename)";
exit;
}
if (fwrite($handle, $answare) === FALSE) {
echo "Cannot write to file ($filename)";
exit;
}
echo ('<meta http-equiv="refresh" content="0;url=calc.php" />');
fclose($handle);
} else {
echo "The file $filename is not writable";
}
}
?>
Может лишние 15 последних строк?
Почему то выводит результат всегда 1794. Подскажите, пожалуйста, в чем дело.
Файл 'ans.html' пустой для ответов
Спустя 1 час, 52 минуты, 35 секунд (5.05.2010 - 20:00) Raito-kun написал(а):
сложно что-то понять в коде, но вижу как минимум, что идут вычисления с $T, который не передан.
Спустя 43 минуты, 49 секунд (5.05.2010 - 20:44) kyler написал(а):
как же не передан? а по моему с Т все нормально
Спустя 10 минут, 23 секунды (5.05.2010 - 20:54) zarafar написал(а):
Цитата (kyler @ 5.05.2010 - 17:44) |
как же не передан? а по моему с Т все нормально |
Покажите пожалуйста, откуда у вас в коде берется T ?
Спустя 5 минут, 40 секунд (5.05.2010 - 21:00) zarafar написал(а):
И тут косяк:
<input type="submit" name="op" value="рассчитать" />
if ( $op == "Рассчитать" )
Спустя 23 минуты, 33 секунды (5.05.2010 - 21:23) Guest написал(а):
Цитата (zarafar @ 5.05.2010 - 17:54) |
Покажите пожалуйста, откуда у вас в коде берется T ? |
ну вроде бы отюда
<select name="T">
<option value="144">01.01.2002</option> <option value="150">01.01.2003</option> <option value="156">01.01.2004</option> <option value="162">01.01.2005</option>
а что, не так? подскажите, пожалуйста как правильно, это вторая программа которую я сам пишу...
я думал что Т берется из выпадающего списка, то есть пользователь выбирает 01.01.2002 и в формуле расчитывается вместо Т 144.
Спустя 10 минут, 26 секунд (5.05.2010 - 21:34) zarafar написал(а):
Здесь вы почему то забыли про переменную T.
Вероятно, стоит её добавить
$Str = $_GET['Str'];
$zp = $_GET['zp'];
$szp = $_GET['szp'];
$op = $_GET['op'];
Вероятно, стоит её добавить
$T = $_GET['T'];
Спустя 6 минут, 31 секунда (5.05.2010 - 21:40) kyler написал(а):
не помогает...выдает ответ 1794 постоянно
Спустя 3 минуты, 25 секунд (5.05.2010 - 21:44) kyler написал(а):
и почему то не исчезает значение это после перезагрузки страницы, исчезает про перезагрузке компьютера
Спустя 13 минут, 29 секунд (5.05.2010 - 21:57) zarafar написал(а):
Очень тяжело читать ваш код, форматируйте его следующий раз.
Выводите промежуточные результаты работы скрипта. С помощью того же echo. Убедитесь, что скрипт делает то что вы от него ожидаете.

Выводите промежуточные результаты работы скрипта. С помощью того же echo. Убедитесь, что скрипт делает то что вы от него ожидаете.
Спустя 1 час, 6 минут, 58 секунд (5.05.2010 - 23:04) MatrixGod написал(а):
kyler
хороший программист получается в первую очередь из того, кто пишет код внятно для себя и для других программистов которым придется его читать.
а во вторую очередь из тех кто следует хорошим традициям, таких как писать mysql запрос большими буквами и т.д.
делайте пробел между блоками кода. например, if следует отделить от остального кода, чтоб глазам было приятней.
100% рабочий код:
хороший программист получается в первую очередь из того, кто пишет код внятно для себя и для других программистов которым придется его читать.
а во вторую очередь из тех кто следует хорошим традициям, таких как писать mysql запрос большими буквами и т.д.
делайте пробел между блоками кода. например, if следует отделить от остального кода, чтоб глазам было приятней.
100% рабочий код:
<? if ( 1
)
{
echo "
hello
"
;
}
?>

Спустя 1 час, 33 минуты, 50 секунд (6.05.2010 - 00:38) kyler написал(а):
спасибо, воспользуюсь Вашими советами насчет оформления кода