Довольно простая вещь, которую я пытаюсь сделать здесь, но я бью головой о стену, пытаясь понять, почему она не работает.Весь код имеет для меня смысл.
У меня есть база данных MySQL, и мои пользовательские данные (имя пользователя и пароль) хранятся в базе данных.Пароль зашифрован с помощью функции password_hash ().Я знаю, что пароль успешно хэшируется, потому что я вижу значение хеш-функции в бэкэнде базы данных в Sequel Pro.
Проблема, с которой я столкнулся, заключается в попытке заставить мою страницу входа проходить аутентификацию с этим именем пользователя и паролем.Также странно то, что даже если я оставлю поле имени пользователя и пароль пустым на странице входа в систему, при нажатии кнопки «Отправить» страница будет мигать, как будто она отправляет некоторые данные, но не выдает никаких ошибок на странице или чем-либо еще.
Файл password.php
, который вы видите в верхней части файла, является следующим: https://github.com/ircmaxell/password_compat
Вот мой код в server.php
<?php
require('password.php');
session_start();
$errors = array();
// connect to the database
$db = mysqli_connect('127.0.0.1', 'root', 'password', 'mydb');
if (!$db) {
die ('Failed to connect to MySQL: ' . mysqli_connect_error());
}
// LOGIN USER
if (isset($_POST['login'])) {
$usernameLogin = mysqli_real_escape_string($db, $_POST['usernameLogin']);
$passwordLogin = $_POST['lpass'];
$password_encrypted = password_hash($passwordLogin, PASSWORD_DEFAULT);
if (empty($usernameLogin)) {
array_push($errors, "Username is required");
}
if (empty($passwordLogin)) {
array_push($errors, "Password is required");
}
if (count($errors) == 0) {
$authLogin = "SELECT * FROM users WHERE username='$usernameLogin' AND password='$password_encrypted'";
$resultLogin = mysqli_query($db, $authLogin);
if (password_verify($passwordLogin, $password_encrypted)) {
$_SESSION['username'] = $usernameLogin;
$_SESSION['success'] = "You are now logged in";
header('location: index.php');
} else {
array_push($errors, "Wrong username/password combination");
}
}
}
}
?>
Вот мой login.php
<?php include('server.php');
require('password.php');
?>
<html lang="en">
<head>
<link rel="stylesheet" type="text/css" href="createaccountstyle.css">
</head>
<div>
<form method="post" action="login.php" id="msform" enctype="multipart/form-data">
<?php include('errors.php'); ?>
<!-- fieldsets -->
<fieldset>
<h2 class="fs-title">Login to Your Account</h2>
<input type="text" name="usernameLogin" placeholder="Username" />
<input type="password" name="lpass" placeholder="Password" />
<button type="submit" name="login" class="login action-button">Login</button><br><br>
</fieldset>
</form>
<center><div class="fs-title">
<p>
Not yet a member?<br><a href="createaccount.php">Sign up</a>
</p>
</div></center>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min.js"></script>
<script type="text/javascript" src="createaccount.js"></script>
</html>