X-Git-Url: https://jasonwoof.com/gitweb/?p=wfpl.git;a=blobdiff_plain;f=session_messages.php;h=269f7e0be6f8cd437b746670230967aa024de730;hp=358994c846c87a39e453d4b17895a414b76715a5;hb=062d46e16429f2e55573567518cb01c83b319ac4;hpb=a11c234de210c655511de6e841eaf87d4787b3f5 diff --git a/session_messages.php b/session_messages.php index 358994c..269f7e0 100644 --- a/session_messages.php +++ b/session_messages.php @@ -2,21 +2,18 @@ # Copyright (C) 2007 Jason Woofenden # -# This file is part of wfpl. -# -# wfpl is free software; you can redistribute it and/or modify it under the -# terms of the GNU Lesser General Public License as published by the Free -# Software Foundation; either version 2.1 of the License, or (at your option) -# any later version. -# -# wfpl is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for -# more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with wfpl; if not, write to the Free Software Foundation, Inc., 51 -# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . # require_once() this file instead of messages.php if you'd like to store @@ -26,9 +23,8 @@ # see messages.php for documentation on how to use it. -require_once('code/wfpl/session.php'); -require_once('code/wfpl/string_array.php'); -require_once('code/wfpl/messages.php'); +require_once(__DIR__.'/'.'session.php'); +require_once(__DIR__.'/'.'messages.php'); function session_save_messages() { if(!isset($GLOBALS['wfpl_messages'])) { @@ -37,20 +33,24 @@ function session_save_messages() { if(!is_array($GLOBALS['wfpl_messages'])) { return; } + if(!count($GLOBALS['wfpl_messages'])) { + return; + } init_session(); - session_set('wfpl_messages', array_to_string($GLOBALS['wfpl_messages']); + session_set('wfpl_messages', json_encode($GLOBALS['wfpl_messages'])); } function session_restore_messages() { - if(!session()) { - return false; - } - $messages = session_get('wfpl_messages'); - if($messages !== false) { - $messages = string_to_array($messages); - # messages from the previous run happened first - $GLOBALS['wfpl_messages'] = array_merge($messages, $GLOBALS['wfpl_messages']); + if(session_exists()) { + $messages = session_get('wfpl_messages'); + if($messages !== false) { + session_clear('wfpl_messages'); + $messages = json_decode($messages, true); + if ($messages !== null) { + return $messages; + } + } } - session_clear('wfpl_messages'); + return array(); }