Сделал логин на ajax и перед тем как передаю результат что все успешно задаю куки, но после того как ajax получает успешный результат и происходит редирект куки не задаются. Как править в этом случае?
login.php
<?php
include($_SERVER['DOCUMENT_ROOT'] . "/includes/db_connect.php");
include($_SERVER['DOCUMENT_ROOT'] . "/includes/functions.php");
$nickname = mysqli_real_escape_string($link, $_POST['nickname']);
$pass = mysqli_real_escape_string($link, $_POST['pass']);
$sql = mysqli_query($link, "SELECT id, nickname, password FROM users WHERE nickname = '$nickname'");
$records = mysqli_fetch_row($sql);
if(!empty($records)) {
if(password_verify($pass, $records[2])) {
check_session("$nickname");
echo "success";
} else {
echo "Вы ввели неверный пароль от аккаунта";
}
} else {
echo "Аккаунта с указанным вами именем пользователя не найдено";
}
?>
login.js
const form = document.querySelector(".login form"),
continueBtn = form.querySelector(".button input"),
errorText = form.querySelector(".error");
form.onsubmit = (e)=>{
e.preventDefault();
}
continueBtn.onclick = ()=>{
let xhr = new XMLHttpRequest();
xhr.open("POST", "ajax/login.php", true);
xhr.onload = ()=>{
if(xhr.readyState === XMLHttpRequest.DONE){
if(xhr.status === 200){
let data = xhr.response;
if(data === "success"){
location.href = "index.php";
} else {
errorText.style.display = "block";
errorText.textContent = data;
}
}
}
}
let formData = new FormData(form);
xhr.send(formData);
}
start_usession()
function start_usession($nickname) {
include($_SERVER['DOCUMENT_ROOT'] . "/includes/db_connect.php");
$agent = $_SERVER['HTTP_USER_AGENT'];
$ip = $_SERVER['REMOTE_ADDR'];
$data = date("d.m.Y H:i");
$permitted_chars = '0123456789abcdefghijklmnopqrstuvwxyz';
$session_id = substr(str_shuffle($permitted_chars), 0, 10);
$sql = mysqli_query($link, "SELECT id FROM users WHERE nickname = '$nickname'");
$user_id = mysqli_fetch_row($sql);
$sql = mysqli_query($link, "SELECT session_id FROM sessions WHERE session_id = '$session_id'");
$check = mysqli_fetch_row($sql);
if(empty($check[0])) {
$sql = "INSERT INTO sessions(session_id, user_id, time_start, time_last, ip, browser, admin) VALUES ('$session_id', '$user_id[0]', '$data', '$data', '$ip', '$agent', '0')";
setcookie("session_id", $session_id);
} else {
start_usession($nickname);
}
}