我正在做一個簡單的聊天腳本,我有killSession函數殺死當前會話並從數據庫中刪除用戶。問題是,名稱設置和驗證後,聊天表單不會加載,它只會殺死會話並返回到loginForm()。這裏的腳本:
<?php
if (!isset($_SESSION['name'])) {
loginForm(); // set a name for chat
} else {
?>
// chat form
$(window).unload(function() {
<?php killSession(); ?>
});
是否有一種方法來觸發killSession()只有刷新或關閉頁面後?
UPDATE:
還是無法弄明白。也許我需要休息一下。
$(window).unload(function() {
$.get("killSession.php", { name:"test" }); // i set the name to test for testing
});
這裏的killSession.php頁:
session_start();
function killSession($name) {
include("config.php");
mysql_query("DELETE FROM sessions WHERE name='$name'");
session_destroy();
header("Location: index.php");
}
killSession($_GET['name']);
的$不用彷徨仍不能正常工作,所以我想它separatly通過瀏覽器。 killSession.php?name = test將從數據庫中刪除,但不會終止會話。
你忘了調用'killSession'函數。你聲明瞭這個函數,但它沒有被調用。您還應該通知自己有關SQL注入。 – Gumbo 2009-08-23 17:55:10
啊,對不起,我忘了在這裏添加它。 killSession($ _ GET ['name']); – Norbert 2009-08-23 18:43:57
修復了會話問題,所以現在killSession.php?name = test會正常工作。現在唯一的問題是$ .get不執行php代碼。 – Norbert 2009-08-23 18:51:06