HTML — математика — экспонента в простой сценарий

Здравствуйте, мне нужно создать простой скрипт, который будет делать возведение в степень чисел, которые я дам, а также это сообщите мне, если я не дам номер или я оставлю пустое место.

Я сделал что-то подобное, но это показывает, что «Все поля не должны быть пустыми», и если я нажму «Вычислить без чисел», я получу «Неверные данные», и это должно быть «Все поля не должны быть пустыми»

Может кто-то это исправить или сказать мне, где ошибка?

Извините если что то не понятно

Вот мой сценарий:

<body>

<FORM action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get">
Base: <input type="text" name="number1" />
Exponent : <input type="text" name="number2" />
<input type="submit" value="compute!" name="Compute"/>
</form>

<?php

if (isset($_GET ['number1']) || isset($_GET['number2'])) {

if (is_numeric($_GET['number1']) && is_numeric($_GET['number2'])) {

echo "{$_GET['number1']} ^ {$_GET['number2']} = ";
echo pow($_GET['number1'], $_GET['number2']);
echo "<BR>";

}
else
{
echo "Wrong data<BR>";
}
}
else
{
echo "All fields must not be empty<BR>";
}

?>
<br />
<a href="index.php">Return!</a>
</body>

1

Решение

isset($input) всегда вернется true так как $input все еще задавать даже если пусто …

Так, !empty($input) вернусь true только если $input является не (см. восклицательный !) пусто и поэтому мне кажется лучшим выбором.

2

Другие решения

Оба ответа ниже верны, но я бы предпочел объединить их.

Убедитесь, что вы проверили, нажата ли кнопка, прежде чем запускать свой код PHP — так что проверьте с

if(isset($_GET['Compute']))

до

if (isset($_GET ['number1']) || isset($_GET['number2'])) {

как сказала Морин

после этого вы должны проверить с помощью! empty от Nadav S. с

if (!empty($_GET ['number1']) && !empty($_GET['number2']))

но, пожалуйста, убедитесь, что вы не удалили строку с проверкой isset. Вы также должны изменить оператор OR || оператору AND &&, Эта строка необходима, чтобы проверить, работает ли скрипт также. Таким образом, вы проверите в этой строке, является ли переменная SET. Может случиться так, что при некоторых неудачах вы не получите правильные переменные, поэтому скрипт выдаст ошибку (вы не можете проверить с пустым, если переменная не установлена).

1

Я не мастер-программист, но мне кажется, я понимаю вашу проблему.

Ваш код уже начинает проверять, существуют ли числа 1 и 2 при загрузке страницы. Очевидно, что при загрузке страницы они еще не существуют. И поскольку у вас есть и еще на нем, он будет автоматически отображать все поля не должны быть пустыми при загрузке страницы.

Попробуйте проверить, нажата ли кнопка, отправив на кнопку форму DATA.
Название кнопки — Compute. Итак, давайте сделаем это!

    if($_GET['Compute') {

///////// Это проверит, нажата ли кнопка /////
/// Поместите другие коды здесь. ///

}

Теперь страница начнет выполнять фактическое кодирование, КАК только КНОПКА нажата.
Поэтому он не будет проверять, существуют ли номера 1 и 2, прежде чем нажать кнопку.

Учитывая другую проблему, я не знаю, как, но я надеюсь, что это немного помогло.

Морин

0

попробуйте isset () и! empty () вместо просто isset ()

0
По вопросам рекламы [email protected]