администратор неверный логин и пароль ошибка

0

код для подключения к SQL:

<?php 
define('DB_SERVER','localhost');
define('DB_USER','root');
define('DB_PASS' ,'');
define('DB_NAME', 'shopping');
$con = mysqli_connect(DB_SERVER,DB_USER,DB_PASS,DB_NAME);
// Check connection
if (mysqli_connect_errno())
{
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
?>

код для входа в систему:

<?php
session_start();
error_reporting(0);
include("include/config.php");
if(isset($_POST['submit']))
{
    $username=$_POST['username'];
    $password=md5($_POST['password']);
    $ret=mysqli_query($con,"SELECT * FROM admin WHERE username='$username' and password='$password'");
    $num=mysqli_fetch_array($ret);
    if($num>0)
    {
        $extra="change-password.php";//
        $_SESSION['alogin']=$_POST['username'];
        $_SESSION['id']=$num['id'];
        $host=$_SERVER['HTTP_HOST'];
        $uri=rtrim(dirname($_SERVER['PHP_SELF']),'/\\');
        header("location:http://$host$uri/$extra");
        exit();
    }
    else
    {
        $_SESSION['errmsg']="Invalid username or password";
        $extra="index.php";
        $host = $_SERVER['HTTP_HOST'];
        $uri = rtrim(dirname($_SERVER['PHP_SELF']),'/\\');
        header("location:http://$host$uri/$extra");
        exit();
    }
 }
 ?>

Он выдает неверное имя пользователя и пароль все время, даже если имя пользователя и пароль верны. Соединение с сервером MySQL выполнено и работает нормально, но проблема с входом в систему с правами администратора в штрафах администратора.

  • 1
    не используйте md5 для хеширования паролей! в течение десятилетий это небезопасно - используйте password_hash и password_verify . и используйте параметризованные операторы, ваш код широко открыт для атак с использованием SQL-инъекций . этот код в основном кричит "эй, хакеры, вот мой пароль, и все остальные тоже"
Теги:

1 ответ

0

mysqli_fetch_array возвращает массив, а не число. Вместо этого используйте count($num) > 0

Ещё вопросы

Сообщество Overcoder
Наверх
Меню