Проблемы с удалением $ _SESSION в PHP

У меня проблема с удалением сеанса. Он хранится в файлах cookie, и всякий раз, когда я нажимаю кнопку выхода, ничего не происходит.

HTML

<input id = "log_out_button" onclick = "logout()" type = "button" value = "Log Out">

AJAX

function logout() {
    // Create request object 
    var request = new XMLHttpRequest();
    // Create event handler that specifies what should happen when server responds
    request.onload = function() {
        // Check HTTP status code
        if (request.status == 200) {
            document.getElementById("error_messages").innerHTML = "";
        }
    else
        alert("Error communicating with server: " + request.status);
}
// Set up request with HTTP method and URL 
request.open("GET", "php/log_out.php");
//Send request
request.send();
}

PHP

<?php
//Start session management
session_start();

//Remove all session variables
session_unset(); 

//Destroy the session 
session_destroy();
?>

Что-нибудь в журнале ошибок консоли? Выполняется ли когда-нибудь функция logout ()?

Adam 03.04.2018 16:01

В журнале ошибок консоли ничего не отображается

User786 03.04.2018 16:01

Но вы ничего не делаете с responseData, и со стороны php ничего не возвращается.

Rotimi 03.04.2018 16:03

Я удалил его, но по-прежнему ничего не происходит

User786 03.04.2018 16:07

попробуйте перенаправить на другую страницу в случае успеха

jasinth premkumar 03.04.2018 16:08

Я тоже пробовал это, но по-прежнему ничего не происходит

User786 03.04.2018 16:09

попробуйте var_dump($_SESSION) между каждой командой сеанса

treyBake 03.04.2018 16:09

что вы ожидаете? вплоть до вашего кода, если сеанс успешно уничтожен, вы теперь это знаете.

skyboyer 03.04.2018 16:11

@ User786 есть ли после утверждения точка с запятой?

treyBake 03.04.2018 16:11
Undefined variable: _SESSION появляется
User786 03.04.2018 16:12
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
10
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

session_start() creates a session or resumes the current one based on a session identifier passed via a GET or POST request, or passed via a cookie.

поэтому, если вы хотите закрыть сеанс пользователя, вам также необходимо очистить файлы cookie

setcookie(session_name(), false, -1, '/');

http://php.net/manual/en/function.setcookie.php

http://php.net/manual/en/function.session-start.php

он говорит, что сеанс, хранящийся на сервере, не удаляется

jasinth premkumar 03.04.2018 16:09

Сеанс @ User786 будет восстановлен, если куки не будут удалены. поэтому вам нужно очистить его, если вы хотите закрыть сеанс

buildok 03.04.2018 16:12

Другие вопросы по теме