如何验证用户的帐户是否在 PHP 中被接受或仍处于待处理状态?

我需要一个 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';

}

?>


三国纷争
浏览 130回答 1
1回答

LEATH

您不需要进行两次查询。$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)){&nbsp;&nbsp; &nbsp; if ($data['status'] == 'Approved') {&nbsp; &nbsp; &nbsp; &nbsp; echo '1';&nbsp; &nbsp; } else if ($data['status'] = "Pending") {&nbsp; &nbsp; &nbsp; &nbsp; echo '2';&nbsp; &nbsp; }} else {&nbsp; &nbsp; echo '3';}?>
打开App,查看更多内容
随时随地看视频慕课网APP