数学 - 简单脚本中的指数


mathematics - exponentation in simple script

您好,我需要创建简单的脚本,该脚本将对我将给出的数字进行幂运算,并且如果我不会给出数字或我会留下空白,它会通知我。

我做了类似的事情,但它显示了"所有字段都不得为空"的

开头,如果我单击没有数字的计算,我会得到"错误的数据",它应该是"所有字段都不得为空"

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

抱歉,如果有些事情无法理解

这是我的脚本:

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

isset($input)将始终返回true因为即使为空$input它仍然被设置...

因此,只有当$input不是空的(请参阅感叹号!)时,!empty($input)才会返回true,因此在我看来是一个更好的选择。

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

确保在运行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 和 2 是否存在。显然,在加载页面时,它们尚不存在。而且由于你有 else 在上面,它会自动回显加载页面时所有字段不得为空。

尝试通过在按钮上发送表单 DATA 来检查按钮是否已按下。按钮的名称为"计算"。所以让我们这样做!

    if($_GET['Compute') { 
//

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

}

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

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

莫林

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