我的PHP代码,写一个简易的计算器,BUG很多,应该怎么改?
<?php$num1='';$num2='';$sum='';if(!empty($_POST['num1'])&&!empty($_POST)){if(@(is_num...
<?php
$num1='';
$num2='';
$sum='';
if(!empty($_POST['num1'])&&!empty($_POST)){
if(@(is_numeric($_POST['num1'])&&is_numeric($_POST['num2']))){
if(@$_POST['add']){
$num1=$_POST['num1'];
$num2=$_POST['num2'];
$sum=$num1+$num2;
}elseif (@$_POST['sub']){
$num1=$_POST['num1'];
$num2=$_POST['num2'];
$sum=$num1-$num2;
}elseif (@$_POST['mul']){
$num1=$_POST['num1'];
$num2=$_POST['num2'];
$sum=$num1*$num2;
}else{
$num1=$_POST['num1'];
$num2=$_POST['num2'];
$sum=$num1/$num2;
}
}else{
echo "只能输入数字且除数不能为0";
}
}else{
echo "请输入数值!";
}
?>
<form method="post" action="">
计算器<br>
数值1:<input type="text" name="num1" value="<?php echo $num1;?>"><br>
数值2:<input type="text" name="num2" value="<?php echo $num2;?>"><br>
<input type="submit" name="add" value="+">
<input type="submit" name="sub" value="-">
<input type="submit" name="mul" value="*">
<input type="submit" name="div" value="/"><br>
结果:<input type="text" name="sum" value="<?php echo $sum;?>">
</form>
测试问题是:当我没有输入第一个数字时,抛出错误,而不是给出我写的提示“请输入数值!”;当我写了第一个数值没有写第二个数值的时候,它虽然没有抛出错误,却也没给我要的提示,而且在除法运算时抛出除数不能为0的错误,而不是给出我给的提示 展开
$num1='';
$num2='';
$sum='';
if(!empty($_POST['num1'])&&!empty($_POST)){
if(@(is_numeric($_POST['num1'])&&is_numeric($_POST['num2']))){
if(@$_POST['add']){
$num1=$_POST['num1'];
$num2=$_POST['num2'];
$sum=$num1+$num2;
}elseif (@$_POST['sub']){
$num1=$_POST['num1'];
$num2=$_POST['num2'];
$sum=$num1-$num2;
}elseif (@$_POST['mul']){
$num1=$_POST['num1'];
$num2=$_POST['num2'];
$sum=$num1*$num2;
}else{
$num1=$_POST['num1'];
$num2=$_POST['num2'];
$sum=$num1/$num2;
}
}else{
echo "只能输入数字且除数不能为0";
}
}else{
echo "请输入数值!";
}
?>
<form method="post" action="">
计算器<br>
数值1:<input type="text" name="num1" value="<?php echo $num1;?>"><br>
数值2:<input type="text" name="num2" value="<?php echo $num2;?>"><br>
<input type="submit" name="add" value="+">
<input type="submit" name="sub" value="-">
<input type="submit" name="mul" value="*">
<input type="submit" name="div" value="/"><br>
结果:<input type="text" name="sum" value="<?php echo $sum;?>">
</form>
测试问题是:当我没有输入第一个数字时,抛出错误,而不是给出我写的提示“请输入数值!”;当我写了第一个数值没有写第二个数值的时候,它虽然没有抛出错误,却也没给我要的提示,而且在除法运算时抛出除数不能为0的错误,而不是给出我给的提示 展开
2个回答
展开全部
<?php
$sum="";
$num1=$_POST['num1'];
$num2=$_POST['num2'];
if(is_numeric($num1) && is_numeric($num2)){
if(isset($_POST['div'])){
if($num2 ===0){
echo "除数不能为0";
}else{
$sum=$num1/$num2;
}
}
if(isset($_POST['add'])){
$sum=$num1+$num2;
}
if(isset($_POST['sub'])){
$sum=$num1-$num2;
}
if(isset($_POST['mul'])){
$sum=$num1*$num2;
}
}else{
echo "请输入有效数值";
}
?>
简单点
AiPPT
2024-09-19 广告
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图...
点击进入详情页
本回答由AiPPT提供
2014-09-14
展开全部
不要使用@屏蔽错误提示信息,宁可使用isset()函数判断一下。
追问
好神奇,我只是按你说的改了一下isset,问题就全解决了,谁能解释一下这是什么道理
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询