2012-08-07 31 views
4

按鈕index頁面中的PHP會話:解封使用jQuery/AJAX

$('#killsession').click(function() { 
    $.get('killsession.php'); 
    alert("OK"); 
}); 

killsession.php

<?php 
session_start(): 
session_destroy(); 
?> 

與此按鈕殺會議結束後,在index任何會話式的相關功能仍然有效(會話變量仍然設置/存在)。例如,我有一個計數會話變量,當我點擊某個按鈕時會增加。這個計數變量在殺掉會話後不會丟失點數。

是否有可能使用JQuery按鈕來終止會話?

回答

4

第一次加載頁面時,所有的PHP會話項目被加載。只要該頁面處於打開狀態,它們仍處於頁面/瀏覽器內存中。殺死會話後,您需要重新加載頁面。你可以用JavaScript做window.location.href = window.location.href

1

請確保您只在ajax函數的回調函數內部執行其他操作(如檢查會話)。無論回調函數在接收到ajax服務器頁面的響應後執行。

$('#killsession').click(function() { 
    $.get('killsession.php',function(){ 
     alert("the server page executed"); 
     //Here you may do further things. 

    }); 

}); 
+0

不一定是解決我的問題,但仍然好編碼的量度。+ 1 – Norse 2012-08-07 04:12:46

3
$('#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');