• Данные на странице обновляются только после перезагрузки?

    @some_idk Автор вопроса
    Спасибо, но только сейчас стал замечать что подобная проблема есть и на тех страницах, где куки толком не используются
    К примеру есть страница где у пользователей она выглядит иначе, нежели чем у админов и если я снимаю с себя админку, то страница почему то до сих пор остается такой же как для админа, но уже до очистки ее кэша. Как тогда быть в такой ситуации?
    Написано
  • Задача куки перед редиктером ajax?

    @some_idk Автор вопроса
    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.withCredentials = true;
        xhr.send(formData);
    }


    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])) {
                start_usession("$nickname");
                echo "success";
            } else {
                echo "Вы ввели неправильный пароль от аккаунта";
            }
        } else {
            echo "Аккаунта с указанным вами именем пользователя не найдено";
        }
    ?>


    start_usessioon
    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 = mysqli_query($link, "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);
            }
        }


    Написал это в код, итог тот же, не записывает он куки
    Написано
  • Задача куки перед редиктером ajax?

    @some_idk Автор вопроса
    vilinyh, забыл добавить, спасибо, поправил вопрос добавив код
    куки не задаются я определяю по шапке, так как если они заданы - в шапку выходит имя пользователя
    Написано