数学 - 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()
你好,我需要创建一个简单的脚本,它将对我要给出的数字进行求幂运算 如果我不给出数字,它会通知我,否则我会留空 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()