Я хочу, чтобы пользователь вошел в свою учетную запись с этой страницы входа.Он должен выполнять различные действия в зависимости от того, оставил ли пользователь поля пустыми, или неверные критерии входа в систему или детали верны.Но он продолжает давать такой ответ: «Вход не выполнен, пожалуйста, попробуйте еще раз».Может кто-нибудь помочь мне в решении этой проблемы?
<?php
include_once("db_con.php");
if(isset($_POST['e'])) {
$e = mysqli_real_escape_string($db_con, $_POST['e']);
$p = mysqli_real_escape_string($db_con, $_POST['p']);
$p_hash = password_hash($p, PASSWORD_DEFAULT);
if($e == "" || $p == ""){
echo "login_failed";
exit();
} else {
$sql = "SELECT id, username, password FROM users WHERE email='$e' LIMIT
1";
$login_query = mysqli_query($db_con, $sql);
$row = mysqli_fetch_array($login_query, MYSQLI_ASSOC);
$db_id = $row["id"];
$db_username = $row["username"];
$db_pass_str = $row["password"];
if($p_hash != $db_pass_str){
echo "login_failed";
exit();
}
else {
// CREATE THEIR SESSIONS AND COOKIES
$user_closed_query = mysqli_query($db_con, "SELECT * FROM users
WHERE email='$e' AND user_closed='yes'");
if(mysqli_num_rows($user_closed_query)) {
$account_reopen = mysql_query($db_con, "UPDATE users SET
user_closed='no' WHERE email='$e'");
}
$_SESSION['userid'] = $db_id;
$_SESSION['username'] = $db_username;
$_SESSION['password'] = $db_pass_str;
setcookie("id", $db_id, strtotime( '+30 days' ), "/", "", "", TRUE);
setcookie("user", $db_username, strtotime( '+30 days' ), "/", "",
"", TRUE);
setcookie("pass", $db_pass_str, strtotime( '+30 days' ), "/", "",
"", TRUE);
// UPDATE THEIR "IP" AND "LASTLOGIN" FIELDS
$sql = "UPDATE users SET lastlogin=now() WHERE
username='$db_username' LIMIT 1";
$query = mysqli_query($db_con, $sql);
echo $db_username;
exit();
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
<script>
function login(){
var e = document.getElementById("log_email");
var p = document.getElementById("log_password");
if(e == "" || p == ""){
document.getElementById("status").innerHTML = "Fill out all of the form
data";
} else {
document.getElementById("login_button").disabled = true;
document.getElementById("status").innerHTML = "Please wait...";
var ajax = new XMLHttpRequest();
ajax.open("POST", "login.php", true);
ajax.setRequestHeader("Content-type", "application/x-www-form-
urlencoded");
ajax.onreadystatechange = function(){
if(ajax.readyState == 4 && ajax.status == 200){
document.getElementById("status").innerHTML = ajax.responseText;
if(ajax.responseText == "login_failed"){
document.getElementById("status").innerHTML = "Login
unsuccessful, please try again.";
document.getElementById("login_button").disabled = false;
} else {
window.location = "index.php?u="+ajax.responseText;
}
}
}
ajax.send("e="+e+"&p="+p);
}
}
</script>
</head>
<body>
<div>
<h3>Log In Here</h3>
<!-- LOGIN FORM -->
<form id="loginform" onsubmit="return false;">
<div>Email Address:</div>
<input type="text" id="log_email" name="log_email" maxlength="88">
<div>Password:</div>
<input type="password" id="log_password" name="log_password"
maxlength="100">
<br /><br />
<button id="login_button" onclick="login()">Log In</button>
<span id="status"></span>
<a href="#">Forgot Your Password?</a>
</form>
<!-- LOGIN FORM -->
</div>
</body>
</html>
Заранее спасибо!Даже если я введу правильный адрес электронной почты и пароль, страница отклика не удастся войти.Я хочу, чтобы он пошел в index.php, когда пользователь успешно войдет в систему.Вот изображение: - Это скриншот того, что происходит каждый раз.