PHP登录表单已填完全部字段仍提示请补全,是什么原因?
你遇到的问题是emptyInputLogin函数的逻辑错误导致的,具体原因如下:
- 函数内只有当输入为空时才给
$result赋值为false,如果两个输入都不为空,$result没有被初始化,会返回null。 - 你在
login.inc.php中使用全不等判断emptyInputLogin($username, $pwd) !== false,null和false的类型不同,所以判断结果为真,就会触发空字段的错误提示,哪怕你已经填了两个字段。
修复方案
- 修正
functions.inc.php中的emptyInputLogin函数逻辑,确保所有分支都有返回值,且返回逻辑匹配判断需求:
function emptyInputLogin( $username, $pwd ) { // 存在空输入返回true,否则返回false if (empty($username) || empty($pwd)){ return true; } return false; }
- (可选优化)修正跳转参数的空格,避免URL解析潜在问题:
把login.inc.php里的跳转代码:
header('location: ../login.php?error=empty input');
改为:
header('location: ../login.php?error=empty_input');
同时对应修改login.php里的错误判断条件:
if($_GET["error"] == "empty_input")
内容的提问来源于stack exchange,提问作者sketchman luke
相关产品推荐
相关产品推荐

