Кнопка на index
странице:
$('#killsession').click(function() { $.get('killsession.php'); alert("OK"); });
killsession.php
:
<?php session_start(): session_destroy(); ?>
После убийства сеанса этой кнопкой все связанные с сеансом функции по index
все еще работают (переменные сеанса все еще установлены / существуют). Например, у меня есть переменная сеанса подсчета, которая увеличивается при нажатии на определенную кнопку. Эта переменная счета не теряет своего места в подсчете после убийства сеанса.
Можно ли убить сеанс кнопкой JQuery?
Все элементы сеанса PHP загружаются при первой загрузке страницы. Они все еще находятся в памяти страницы / браузера, пока страница открыта. Вам необходимо перезагрузить страницу после убийства сеанса. Вы можете сделать это с помощью javascript window.location.href = window.location.href
$('#killsession').click(function() { $.get('killsession.php', function() { alert("the server page executed"); //Here you may do further things. window.location = window.location; }); });
killsession.php
session_start(); $_SESSION = array(); $params = session_get_cookie_params(); setcookie( session_name(), '', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"] ); session_destroy(); exit('OK');
Убедитесь, что вы выполняете другие действия (например, проверку сеанса) только внутри обратного вызова функции ajax. Что бы внутри обратного вызова не было выполнено после получения ответа от страницы сервера ajax.
$('#killsession').click(function() { $.get('killsession.php',function(){ alert("the server page executed"); //Here you may do further things. }); });