数学 - php 中的指数 - 简单的脚本

mathematics - exponentation in php - simple script

你好,我需要创建一个简单的脚本,它将对我要给出的数字进行求幂运算 如果我不给出数字,它会通知我,否则我会留空 space.

我做了类似的事情,但它显示了 "All fields must not be empty" 的开头,如果我单击不带数字的计算,我会得到 "Wrong data",它应该是 "All fields must not be empty"

有人可以修复它或告诉我错误在哪里吗?

如有不明白之处请见谅

这是我的脚本:

<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>

我不是高级程序员,但我想我有点理解你的问题。

您的代码在加载页面时已经开始检查 number1 和 2 是否存在。显然在加载页面时,它们还不存在。并且因为你有 and else 就可以了,它会自动回显 All fields must not be empty when loading the page.

尝试通过在按钮上发送表单数据来检查按钮是否被按下。 按钮的名称是计算。让我们开始吧!

    if($_GET['Compute') { 

///////// 这将检查按钮是否被按下 /////
/// 在这里放置其他代码。 ///

}

现在,一旦按下按钮,页面就会开始执行实际的编码。 因此在点击按钮之前不会检查数字1和2是否存在。

考虑到另一个问题,我不知道如何,但我希望这能有所帮助。

莫琳

isset($input) 将始终 return true 因为 $input 仍然是 set 即使空...

因此,只有当 $input 而不是 [=24 时,!empty($input) 才会 return true =](见感叹号 !)为空,因此在我看来是更好的选择。

下面的两个答案都是正确的,但我更愿意将它们结合起来。

确保在 运行 您的 PHP 代码之前检查按钮是否被点击 - 所以请检查

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

之前

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

正如莫琳所说

之后你必须用 Nadav S. 的 !empty 检查

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

但请确保您没有删除带有 isset 检查的行。您还必须更改 OR 运算符 ||到 AND 运算符 &&。需要这一行来检查脚本是否也能正常工作。因此,您将在这一行检查变量是否已设置。可能是,由于某些失败,您将不会收到正确的变量,因此脚本会给出错误(如果未设置变量,则无法检查空值)。

尝试 isset() 和 !empty() 而不仅仅是 isset()