aboutsummaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-01-27 15:58:27 +0000
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-01-27 15:58:27 +0000
commit9003094e5dd355a8f63ef39b429e4c7b9a7ce687 (patch)
tree1fa207b10ef193f5441acab16a81171c7414ccbb /engine
parent771e4314a7392f5e8467c35d78984ec9d1ac3ba4 (diff)
downloadelgg-9003094e5dd355a8f63ef39b429e4c7b9a7ce687.tar.gz
elgg-9003094e5dd355a8f63ef39b429e4c7b9a7ce687.tar.bz2
Fixes #1464: A new session is created in logout() after destorying the old session to display old $_SESSION['msg'] messages.
git-svn-id: http://code.elgg.org/elgg/trunk@3847 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'engine')
-rw-r--r--engine/lib/sessions.php11
1 files changed, 9 insertions, 2 deletions
diff --git a/engine/lib/sessions.php b/engine/lib/sessions.php
index 862ab8f6b..fdc6d1806 100644
--- a/engine/lib/sessions.php
+++ b/engine/lib/sessions.php
@@ -451,9 +451,16 @@ function logout() {
setcookie("elggperm", "", (time()-(86400 * 30)),"/");
+ // pass along any messages
+ $old_msg = $_SESSION['msg'];
+
session_destroy();
- return true;
+ // starting a default session to store any post-logout messages.
+ session_init(NULL, NULL, NULL);
+ $_SESSION['msg'] = $old_msg;
+
+ return TRUE;
}
/**
@@ -733,4 +740,4 @@ function __elgg_session_gc($maxlifetime) {
return true;
}
-register_elgg_event_handler("boot","system","session_init",20); \ No newline at end of file
+register_elgg_event_handler("boot","system","session_init",20);