JeffLiteral Ответов: 0

Может ли кто-нибудь понять, почему я не могу получить данные из базы данных для выполнения входа в систему


Это код формы внутри login.php
<form action="code.php" methos="POST">
  <div class="form-group">
    <input type="text" name="usernamee" class="form-control form-control-user"
      placeholder="Enter Email Address...">
  </div>
  <div class="form-group">
    <input type="password" name="passwordd" class="form-control form-control-user"
      placeholder="Password">
  </div>

  <button type="submit" name="login_button" class="btn btn-primary btn-user btn-block">Login</button>

  <hr>
</form>

Это код для извлечения данных из базы данных, которые code.php
<?php
if(isset($_POST['login_button']))
{
    $email_login = $_POST['usernamee'];
    $password_login = $_POST['passwordd'];

    $query = "SELECT * FROM register WHERE email='$email_login' AND password='$password_login' ";
    $query_run = mysqli_query($connection, $query);

        if(mysqli_fetch_array($query_run))
        {
            $_SESSION['username'] = $email_login;
            header('Location: index.php');
        }
        else
        {
            $_SESSION['status'] = 'Email or password is invalid';
            header('Location: login.php');
        }
}
?>

Это значение находится внутри базы данных
CREATE TABLE `register` (
  `id` int(11) NOT NULL,
  `fname` varchar(50) NOT NULL,
  `office` varchar(50) NOT NULL,
  `school` varchar(50) NOT NULL,
  `email` varchar(50) NOT NULL,
  `username` varchar(50) NOT NULL,
  `password` varchar(50) NOT NULL,
  `image` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;


INSERT INTO `register` (`id`, `fname`, `office`, `school`, `email`, `username`, `password`, `image`) VALUES
(1, 'Trial User', 'Office Name', 'National High School', 'trial@sample.com', 'admin', 'password', '');

Начало сеанса();
<?php
session_start();

include('database/dbconfig.php');

if($dbconfig)
{
    //echo "Database Connected";
}
else
{
    header('Location: database/dbconfig.php');
}

if(!$_SESSION['username'])
{
    header('Location: login.php');
    
}

?>

И подключение к базе данных внутри dbconfig.php
$connection = mysqli_connect("localhost","root","","adminpanel");


Что я уже пробовал:

Это уже вызывает у меня головную боль. Но я надеюсь, что у вас есть все самые лучшие ответы.

Richard Deeming

Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк / интерполяцию для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.

PHP: SQL-инъекция - руководство пользователя[^]
РНР: Подготовленные инструкции и хранимые процедуры - руководство пользователя[^]

Richard Deeming

Вы также храните пароли в виде обычного текста. Не делай этого.

Безопасная Аутентификация Паролем Объясняется Просто[^]
Соленое хэширование паролей - делаем это правильно[^]

PHP даже имеет встроенные функции, которые помогут вам сделать все правильно:

PHP: password_hash[^]
РНР: функцию password_verify[^]

Richard MacCutchan

В дополнение к проблемам, выявленным Ричардом Димингом, вы неправильно написали method как методическимис

0 Ответов