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

时间:2015-01-15 11:43:10

标签: php html get pow

您好我需要创建一个简单的脚本,它会对我给出的数字取幂,并且告诉我,如果我不给一个数字,或者我会留空空间。

我做了类似的事情,但它显示了“所有字段不能为空”的开头,如果我点击没有数字的计算,我会得到“错误的数据”,它应该是“所有字段都不能为空“

有人可以修理它或者告诉我哪里出错了吗?

如果有什么不可理解的话,很抱歉

这是我的剧本:

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

4 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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

确保在运行PHP代码之前检查是否单击了按钮 -​​ 请检查

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

if (isset($_GET ['number1']) || isset($_GET['number2'])) {
正如莫琳所说的

之后,你必须用Nadav S.和

进行检查
if (!empty($_GET ['number1']) && !empty($_GET['number2']))

但请确保您不使用isset检查删除该行。您还必须更改OR运算符||到AND-operator&amp;&amp ;.需要此行来检查脚本是否也能正常工作。因此,如果变量是SET,您将在此行检查。可能是,有些失败你不会收到正确的变量,所以脚本会发出一个错误(如果没有设置变量你就不能用空检查。)

答案 2 :(得分:0)

我不是大师级程序员,但我觉得我有点理解你的问题。

您的代码已经开始检查加载页面时是否存在number1和2。显然,在加载页面时,它们还不存在。并且由于你有其他内容,它会自动回显加载页面时所有字段都不能为空。

尝试通过在按钮上发送表格DATA来检查按钮是否被按下。 按钮的名称是Compute。所以,让我们这样做!

    if($_GET['Compute') { 

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

}

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

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

莫林

答案 3 :(得分:0)

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