您好,我需要创建简单的脚本,该脚本将对我将给出的数字进行幂运算,并且如果我不会给出数字或我会留下空白,它会通知我。
我做了类似的事情,但它显示了"所有字段都不得为空"的开头,如果我单击没有数字的计算,我会得到"错误的数据",它应该是"所有字段都不得为空"
有人可以修复它或告诉我哪里有错误吗?
抱歉,如果有些事情无法理解
这是我的脚本:
<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()