X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Помогите, пожалуйста, найти ошибку
Irbiss_wild
Irbiss_wild
Topic Starter сообщение 9.8.2012, 21:53; Ответить: Irbiss_wild
Сообщение #1


Доброго времени суток! Одно из первых моих заданий в PHP - калькулятор. Изучаю язык недавно, потому, возможно, и не могу найти ошибку.

Суть в том, что преподаватель задал сделать калькулятор, считающий три числа сразу, а не два. До этого всё хорошо было, но вот с третьим числом начались проблемы: как ни пытался, а либо выдаёт синтаксическую ошибку, либо же просто пустой экран. На оформление не обращайте внимание - сильно внешним видом не заморачивался.. заранее спасибо за помощь!)

Первый файл:
<html>
<form action='ewq.php' name='form1' method=post>
<table border=0 cellpadding=0 cellspacing=0>
<tr><td>&nbsp&nbsp&nbsp</td><td>Первое число:</td><td><input type=text size=40 maxleight=35 name=pole></td></tr>
<tr><td>&nbsp&nbsp&nbsp</td><td>Второе число:</td><td><input type=text size=40 maxleight=35 name=pole></td></tr>
<tr><td>&nbsp&nbsp&nbsp</td><td>Третье число:</td><td><input type=text size=40 maxleight=35 name=pole></td></tr>
<tr><td>&nbsp&nbsp&nbsp</td><td>sum<input type=radio name=de[1] value=sum ></td><td>sum2<input type=radio name=de2[11] value=sum2></td></tr>
<tr><td>&nbsp&nbsp&nbsp</td><td>raz<input type=radio name=de[2] value=raz ></td><td>raz2<input type=radio name=de2[22] value=raz2></td></tr>
<tr><td>&nbsp&nbsp&nbsp</td><td>del<input type=radio name=de[3] value=del ></td><td>del2<input type=radio name=de2[33] value=del2></td></tr>
<tr><td>&nbsp&nbsp&nbsp</td><td>umn<input type=radio name=de[4] value=umn ></td><td>umn2<input type=radio name=de2[44] value=umn2></td></tr>
<tr><td colspan=3 align=center><input type=submit name='[submit]' value='Рассчитать'></td></tr>
<tr><td>&nbsp&nbsp&nbsp</td><td colspan=2><?php ?></td></tr>
</html>


Второй файл:
[PHP]<?php
$a=$_POST['pole'];
$b=$_POST['pole'];
$c=$_POST['pole'];
$d=$_POST['de'];
$q=$_POST['de2'];






if (isset($d))
{
$de[1]="$x=$a+$b";
$de[2]="$x=$a-$b";
$de[3]="$x=$a/$b";
$de[4]="$x=$a*$b";
}

if (isset($q))
{
$de2[11]="$z=$x+$c";
$de2[22]="$z=$x-$c";
$de2[33]="$z=$x/$c";
$de2[44]="$z=$x*$c";
}



echo '<br>';

if ($a=='' or $b=='' or $c=='')
{
echo "vvedite vse chisla";
}
else if (isset ($submit))
{
echo $z;
}
?>[/PHP]
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
A1ex_hb
A1ex_hb
сообщение 9.8.2012, 22:13; Ответить: A1ex_hb
Сообщение #2


простой скрипт калькулятора (используется eval)
[PHP]<html>
<form action='' method=post>
<input type='text' name='query' value='1+2*3'/>
<input type='submit' value='Рассчитать'/><br/><br/>
<?php
if(isset($_POST['query'])){
eval('$result = '.$query.';');
}
?>

Результат: <input type='text' value='<?php echo $result; ?>'/>
</form>
</html>
[/PHP]
а вот решение с защитой от взлома
[PHP]<html>
<form action='' method=post>
<input type='text' name='query' value='1+2*3'/>
<input type='submit' value='Рассчитать'/><br/><br/>
<?php
if(isset($_POST['query'])){
$query = $_POST['query'];
$allow = array(0,1,2,3,4,5,6,7,8,9,'+','-','*','/','(',')');
$bad=0;
for($i=0; $i<strlen($query); $i++){
$good = 0;
for($x=0; $x<sizeof($allow); $x++){
if($query[$i]==$allow[$x]){
$good=1;
continue;
}
}
if($good==0){
$bad=1;
continue;
}
}
if($bad==0){
eval('$result = '.$query.';');
}
}
?>

Результат: <input type='text' value='<?php echo $result; ?>'/>
</form>
</html>[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Witu
Witu
сообщение 10.8.2012, 7:00; Ответить: Witu
Сообщение #3


A1ex, хороший мануал как повесить сервер

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Нужен кодер, чтобы пофиксить ошибку Wordpress после переноса сайта
0 Alex-777 814 7.4.2024, 18:05
автор: Alex-777
Открытая тема (нет новых ответов) Через какой браузер и как можно найти в кэшэ браузера видео
10 Room 2280 23.3.2024, 7:41
автор: Room
Открытая тема (нет новых ответов) Помогите вспомнить рекламного бота Телеграм для обмена рекламой
0 Mixatraider 725 21.2.2024, 23:42
автор: Mixatraider
Открытая тема (нет новых ответов) "Извините, что ожидание затянулось, но не думайте, пожалуйста, что мы про вас забыли. Мы заводим задачи по всем обращениям и контролируем работу над ними самым тщательным образом."
Вопрос
0 kuz999 1243 5.2.2024, 14:06
автор: kuz999
Открытая тема (нет новых ответов) Помогите рещить проблему с монитором.
Почему низкое разрешение при подключении монитора через displayport?
0 Levels 1702 11.12.2020, 0:48
автор: Levels


 



RSS Текстовая версия Сейчас: 18.4.2024, 11:20
Дизайн