这段代码要怎么改才能区分普通用户和管理员?

这段代码要怎么改才能区分普通用户和管理员?

session_start();
include_once './fun.php';

//表单进行提交处理
if(!empty($_POST['ID'])) {
    $username = trim($_POST['ID']);//mysqli_real_escape_string()进行过滤
    $password = trim($_POST['password']);
//判断密码不能为空
    if (!$password) {
        echo "<script>alert('密码不能为空')</script>";

    }

//数据库连接
    $con = mysqliInit('localhost', 'root', '', 'library');

    if (!$con) {
        echo mysqli_errno($con);
        exit;
    }
//根据用户名查询用户
    if ($_POST["user"] == "radio1") {
        $sql = "SELECT * FROM `user` WHERE `bID` = '{$username}' LIMIT 1";
        $obj = mysqli_query($con, $sql);
        $result = mysqli_fetch_assoc($obj);

        if (is_array($result) && !empty($result)) {
            if ($_POST['password'] === $result['password']) {

                $_SESSION['user'] = $result;
                header('Location:index.php');
                exit;
            } else {
                echo "<script>alert('密码不正确,请重新输入')</script>";
            }
        } else {
            echo "<script>alert('用户不存在,请重新输入')</script>";

        }
    } else {
        $sql = "SELECT * FROM `admin` WHERE `aID` = '{$username}' LIMIT 1";
        $obj = mysqli_query($con, $sql);
        $result = mysqli_fetch_assoc($obj);

        if (is_array($result) && !empty($result)) {
            if ($_POST['password'] === $result['password']) {

                $_SESSION['user'] = $result;
                header('Location:admin.php');
                exit;
            } else {
                echo "<script>alert('密码不正确,请重新输入')</script>";
            }
        } else {
            echo "<script>alert('用户不存在,请重新输入')</script>";

        }
    }
}
<div class="form-group">
        <label class="radio-inline"><input type="radio" name="user" value="radio1">普通用户</label>
        <label class="radio-inline"><input type="radio" name="user1" value="radio2">管理员</label>
</div>

普通用户必须勾选才能登录,但啥也不选就可以用管理员账号登录,要怎么修改?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
imooc_澈 2018-05-16 17:49:24

你好,根据同学描述的逻辑,勾选了普通用户的话普通用户才能登陆,否则(勾选的是管理员或者没有勾选)后台就只会执行管理员登陆,普通用户和管理员是非此即彼的关系,那么html代码应改为如下:

http://img1.sycdn.imooc.com//climg/5afbfd990001627010270253.jpg

在后台对接收$_POST['user'],当它的值等于radio1时执行普通用户登录,反之如果它的值等于radio2或者什么都没有勾选,$_POST['user']不存在时,就执行管理员登录,这里要注意后台添加一个$_POST['user']的存在性判断,定义一个变量$user并给它赋空字符串,如下:

http://img1.sycdn.imooc.com//climg/5afbfd7b00012fd606910302.jpg

如果解决了你的问题,请采纳,祝学愉快~

  • 提问者 慕粉1520047450 #1
    我意思是想修改之后,必须选择管理员才能登录,而不是啥都不选就能执行管理员登录
    2018-05-16 17:57:58
  • imooc_澈 回复 提问者 慕粉1520047450 #2
    那就还是两个的name属性都设为user,也就是上面回答中的图一,然后在后台直接判断$_POST['user'],如果不存在输出提示登录出错,请选择账户种类跳转到登录页,如果等于radio1就执行普通会员登录,如果等于radio2就执行源代码中else部分的会员登录就可以了,里面具体的登录逻辑根据你的实际需求确定。
    2018-05-16 18:10:07
  • 提问者 慕粉1520047450 回复 imooc_澈 #3
    谢谢老师!
    2018-05-16 18:13:49
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
PHP小白零基础入门
  • 参与学习           人
  • 提交作业       626    份
  • 解答问题       4930    个

想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师