管理员登录界面不能使用mysql数据库

问题描述 投票:0回答:1

我的管理员登录屏幕无法正常工作即使我输入了正确的密码和数据库中的用户名,它似乎也不喜欢它可以帮助解决我的问题,这是我的管理员登录代码

<?php
    session_start();
    include('../config/dbconn.php');
    if($_SERVER["REQUEST_METHOD"] == "POST"){

        $user_unsafe=$_POST['username'];
        $pass_unsafe=$_POST['password'];

        $user = mysqli_real_escape_string($dbconn,$user_unsafe);
        $pass1 = mysqli_real_escape_string($dbconn,$pass_unsafe);

        $pass=md5($pass1);
        $salt="a1Bz20ydqelm8m1wql";
        $pass=$salt.$pass;


        date_default_timezone_set('Asia/Manila');
        $date = date("Y-m-d H:i:s");


        $query=mysqli_query($dbconn,"SELECT * FROM `admin` WHERE username='$user' AND password='$pass'");
        $res=mysqli_fetch_array($query);
        $id=$res['user_id'];

        if (mysqli_num_rows($query)<1){
            $_SESSION['msg']="Login Failed, User not found!";
            header('Location:admin_login_page.php');
        }

        else{
            $res=mysqli_fetch_array($query);
            $_SESSION['id']=$res['user_id'];
            header('Location: admin_index.php');

            $_SESSION['id']=$id;
            $remarks="has logged in the system at ";
            mysqli_query($dbconn,"INSERT INTO logs(user_id,action,date) VALUES('$id','$remarks','$date')")or die(mysqli_error($dbconn));
            }
        }
?>
php mysql phpmyadmin visual-web-developer
1个回答
1
投票

你正在两次调用mysqli_fetch_array - 一次在if之前,一次在else区块。由于查询最多应返回一行,因此第二次提取将失败。

作为旁注,在构造SQL查询时不应使用字符串操作,因为您将使代码容易受到SQL注入攻击。你应该考虑使用prepared statement代替。

© www.soinside.com 2019 - 2024. All rights reserved.