系统提交后页面没有反应,请帮我看看代码是否正确,逻辑是否可以~

来源:1-17 编程练习

阿尔法云通讯

2019-08-19 06:53:13

<?php  

$num1=$_POST['num1'];

$num2=$_POST['num2'];

$op=$_POST['op'];

$sub = $_POST['sub'];

if($sub){

    if(is_numeric($num1) && is_numeric($num2)){

        switch($op){

            case '+':

                $res = $num1 + $num2;

            break;

            case '-':

                $res = $num1 - $num2;

            break;

            case '*':

                $res = $num1 * $num2;

            break;

            case '/':

            if($num2!=0){

                $res = $num1 / $num2;

            }else{

                exit('除数不能为0');

            }

            break;

        }

    echo "运算结果为:<br/>{$num1}{$op}{num2}={$res}";    

        

    }else{

        exit('请输入正确的数值');

    }

}else{

    exit;

}

?>

<!DOCTYPE html>

<html>

<head>

<title>计算器</title>

</head>

<body>

<form action="#" method="post">

<input type="text" name="num1">

<select name="op">

<option value="+">+</option>

<option value="-">-</option>

<option value="*">*</option>

<option value="/">/</option>

</select>

<input type="text" name="num2">

<input type="submit" name="sub" value="计算">

<input type="reset" value="重置">

</form>

</body>

</html>


写回答

1回答

好帮手慕小尤

2019-08-19

同学你好,访问时报错:未定义的变量。

错误原因:由于程序第一次运行,并未接收到post值则开始定义变量造成的。

解决方法:判断是否是post传值,是就进行操作。代码如下:

<?php  
// 判断是否是post传值,是则进入
if($_POST) {
	$num1=$_POST['num1'];
	$num2=$_POST['num2'];
	$op=$_POST['op'];
	$sub = $_POST['sub'];
	if($sub){
	    if(is_numeric($num1) && is_numeric($num2)){
	        switch($op){
	            case '+':
	                $res = $num1 + $num2;
	            break;
	            case '-':
	                $res = $num1 - $num2;
	            break;
	            case '*':
	                $res = $num1 * $num2;
	            break;
	            case '/':
		            if($num2!=0){
		                $res = $num1 / $num2;
		            }else{
		                exit('除数不能为0');
		            }
	            break;
	        }
	        // 缺少$符
	    	echo "运算结果为:<br/>{$num1}{$op}{$num2}={$res}";    
	    }else{
	        exit('请输入正确的数值');
	    }
	}else{
	    exit;
	}
}
?>

祝学习愉快!

0

0 学习 · 4928 问题

查看课程