我需要一个 php 文件,如果用户尝试登录,该 php 文件将获取用户名和密码,如果正确,它将继续检查状态,如果用户的帐户已被批准或仍在等待中。因此,如果用户的帐户被批准,它将打印“1”,如果仍在等待中,它将打印“2”,如果用户的用户名和密码不正确,它将只打印“3”。问题是在 PHP 文件检查用户的用户名和密码后,它应该再次检查数据库,如果该帐户已首先批准或仍在进行中,则在打印“1”或“2”之前<?php$user_name = filter_input(INPUT_POST, "user_name");$user_pass = filter_input(INPUT_POST, "user_pass");$mysqli = new mysqli("server", "username", "password", "db");$result = mysqli_query($mysqli, "SELECT * FROM user_info WHERE user_name='$user_name' AND user_pass = MD5('".$user_pass."')");if ($data = mysqli_fetch_array($result)){ $status = mysqli_query($mysqli, "SELECT `status` FROM `user_info` WHERE `user_name`='$user_name'"); $data2 = mysqli_fetch_object($status); if ($data2 = "Approved") { echo '1'; } else if ($data2 = "Pending") { echo '2'; }} else {echo '3';}?>
1 回答

LEATH
TA贡献1936条经验 获得超6个赞
您不需要进行两次查询。$data包含用户的行,因此您可以在那里检查状态。
<?php
$user_name = filter_input(INPUT_POST, "user_name");
$user_pass = filter_input(INPUT_POST, "user_pass");
$mysqli = new mysqli("server", "username", "password", "db");
$result = mysqli_query($mysqli, "SELECT * FROM user_info WHERE user_name='$user_name' AND user_pass = MD5('".$user_pass."')");
if ($data = mysqli_fetch_array($result)){
if ($data['status'] == 'Approved') {
echo '1';
} else if ($data['status'] = "Pending") {
echo '2';
}
} else {
echo '3';
}
?>
- 1 回答
- 0 关注
- 129 浏览
添加回答
举报
0/150
提交
取消