сеанс уничтожается, когда пользователь закрывает браузер **. если вы хотите уничтожить его, как только пользователь выгрузит страницу, вы можете добавить обработчик события разгрузки страницы (что-то вроде jquery unload) и выполнить запрос ajax для скрипта, который просто очищает сеанс.
EDIT: по запросу OP я добавлю специальный код.
1) на всех страницах (Index.php, userdata.php, reports.php, finalreport.html) добавить этот код Javascript
$(window).unload(function() {
$.get('session_destroyer.php');
});
2) в session_destroyer.php использовать этот код (взято из php.net)
<?php
// Initialize the session.
// If you are using session_name("something"), don't forget it now!
session_start();
// Unset all of the session variables.
$_SESSION = array();
// If it's desired to kill the session, also delete the session cookie.
// Note: This will destroy the session, and not just the session data!
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
// Finally, destroy the session.
session_destroy();
?>
надеюсь, что это помогает
** Примечание: как отметил один из комментаторов, это предполагает, что вы используете куки основе сессий (который по умолчанию в PHP, я думаю)
Браузеры уже отбрасывают [сеансовые куки] (http://en.wikipedia.org/wiki/HTTP_cookie#Session_cookie), когда заканчивается сеанс браузера; чего не хватает, или это не так? – Gumbo
Это о сеансе браузера или «server-session» (содержимое $ _SESSION) – J0HN