Я начал использовать подготовленные заявления. Все казалось хорошо, пока я не перезагрузил свою машину. Теперь, когда я пытаюсь войти, пароль не может быть подтвержден. Я не могу утешить любые ошибки. Единственное, что я могу напечатать на экране, это HTML-код с начальной страницы индекса, где начинается вход в систему.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<meta name="description" content="" />
<meta name="author" content="" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Login Page</title>
<link href="css/bootstrap.min.css" rel="stylesheet" />
<link href="css/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css" />
<link href="https://fonts.googleapis.com/css?family=Lato:300,400,700,300italic,400italic,700italic" rel="stylesheet" type="text/css" />
<link href="css/landing-page.min.css" rel="stylesheet" />
</head>
Вот форма на той же странице:
<form>
<input type="text" class="form-control" placeholder="Enter Username" id="username" />
<input type="password" class="form-control" placeholder="Enter Password" id="password" />
<button type="button" class="btn btn-sm btn-primary" id="loginSubmit">Login</button>
</form>
<script src="js/jquery.js"></script>
<script src="js/bootstrap.bundle.min.js"></script>
<script src="js/login.js"></script>
Вот код для login.js (без проверки)
$('#loginSubmit').on('click', function()
{
var username = $('#username').val();
var password = $('#password').val();
$.post('process/checkLogin.php', {username:username, password:password}, function(data)
{
if(data.indexOf("Error") >= 0)
{
console.log(data);
}
});
});
Вот процесс, который называется checkLogin.php
<?php
include('../include/sessions.php');
if(isset($_POST['username']))
{
$username = htmlspecialchars(trim($_POST['username']));
$select = "SELECT username, firstname, lastname, email,
userlevel, `password` FROM users WHERE username = ?;";
$stmt = $dbc->prepare($select);
$stmt->bind_param("s", $username);
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();
if(password_verify($_POST['password'], $row['password']))
{
$_SESSION['user'] = $row;
header("Location: ../cust/home.php");
die;
}
else
{
echo "Error: The username/password combination does not match our records.";
}
});
?>
Я думаю, что зависание происходит по адресу password_verify в скрипте checkLogin.php. Он пропускает к другому, является ли пароль правильным или нет. Но вместо того, чтобы увидеть сообщение об ошибке, я вижу только HTML-код для начальной страницы входа.
Клянусь, все это работало до того, как я перезагрузил свой компьютер. Это не ограничивается Chrome. Все браузеры делают одно и то же.
Чего мне не хватает?