PHP. 在判断语句中,0值的$_POST想到于false

本文分享了一位前端开发者在将价格数据从前端传至后端时遇到的低级错误,并通过修改PHP代码成功解决问题的过程。强调了在进行数据传递时对变量存在性的正确判断,避免了因零值误判导致的功能失效。

好吧,今天又因为由基础不扎实而导致的低级错误耽误了好多时间。。。。

 

我从前端取到一个价格数据传回后台,使用$_POST['price']接收。原本代码中设置了对price参数是否存在的判断,我是这么写的。。。。

 

if($_POST['price']) {
    //do something
}

 

结果发现,对于 price = "0" 这种传入值始终无法执行“something”。 原因就是在php的if判断中 if(“0”) 相当于 if(false)。

于是我改成:

 

if($_POST['price'] != null) {
    //do something
}

 

世界从此宁静了~~~~

<?php include 'db.php'; // 开启错误报告(调试完成后可移除) ini_set('display_errors', 1); error_reporting(E_ALL); $user_type = $_POST['user_type']; $password = $_POST['password']; $account = ''; // 学生注册逻辑 if ($user_type === 'student') { $account = $_POST['sno']; $name = $_POST['name']; $email = $_POST['email']; $phone = $_POST['phone']; $grade = $_POST['grade']; $major = $_POST['major']; $sql_user = "INSERT INTO users (account, password, user_type) VALUES ('$account', '$password', 'student')"; $sql_student = "INSERT INTO student (sno, name, password, email, phone, grade, major) VALUES ('$account', '$name', '$password', '$email', '$phone', '$grade', '$major')"; if ($conn->query($sql_user) && $conn->query($sql_student)) { header('Location: login.php'); exit(); } else { echo "学生注册失败: " . $conn->error; } // 教师注册逻辑 } elseif ($user_type === 'teacher') { $account = $_POST['tno']; $name = $_POST['name']; $email = $_POST['email']; $phone = $_POST['phone']; $sql_user = "INSERT INTO users (account, password, user_type) VALUES ('$account', '$password', 'teacher')"; $sql_teacher = "INSERT INTO teacher (tno, name, password, email, phone) VALUES ('$account', '$name', '$password', '$email', '$phone')"; if ($conn->query($sql_user) && $conn->query($sql_teacher)) { header('Location: login.php'); exit(); } else { echo "教师注册失败: " . $conn->error; } // 管理员注册逻辑 } elseif ($user_type === 'admin') { $account = $_POST['account']; $sql_user = "INSERT INTO users (account, password, user_type) VALUES ('$account', '$password', 'admin')"; if ($conn->query($sql_user)) { header('Location: login.php'); exit(); } else { echo "管理员注册失败: " . $conn->error; } // 无效用户类型处理 } else { die("错误:非法的用户类型"); } $conn->close(); ?>Notice: Undefined index: user_type in /var/www/html/xues/register_process.php on line 8 Notice: Undefined index: password in /var/www/html/xues/register_process.php on line 9 错误:非法的用户类型
03-20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值