From 4abebd3fa739ac9477aa7f2415b1d858a91212a7 Mon Sep 17 00:00:00 2001 From: Graham Cole <chckens@sucs.org> Date: Sat, 27 Feb 2010 18:13:42 +0000 Subject: [PATCH] add a new function to save a message flash in the session data to be displayed on the next page load (e.g. when we're doing post/redirect/get) --- lib/error.php | 7 +++++++ lib/session.php | 12 ++++++++++++ 2 files changed, 19 insertions(+) diff --git a/lib/error.php b/lib/error.php index dcafd3c..fb516bb 100644 --- a/lib/error.php +++ b/lib/error.php @@ -23,6 +23,13 @@ function message_flash($message) { $messages['info'][] = $message; } +function message_flash_postponed($message) { + global $session; + $session->data['messages']['info'][] = $message; + $session->save(); +} + + set_error_handler("handle_messages", (E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE)); // empty messages array was causing PHP to spew notices diff --git a/lib/session.php b/lib/session.php index a0f461c..da7c108 100644 --- a/lib/session.php +++ b/lib/session.php @@ -153,6 +153,18 @@ private $datahash=''; // hash of data field // update time stamp $DB->Execute( "update {$this->table} set lastseen=NOW() where hash=?", array($this->token)); + + // check to see if there any messages stored for this user + if (isset($this->data['messages'])) { + global $messages; + if (is_array($messages)) { + $messages += $this->data['messages']; + } else { + $messages = $this->data['messages']; + } + unset($this->data['messages']); + $this->save(); + } } // generate a string suitable to be used as a session ID -- GitLab