From be4ff3c091cff13af49041b59f12f97a466b0040 Mon Sep 17 00:00:00 2001 From: Thomas Steur Date: Mon, 1 Feb 2016 14:52:20 +0000 Subject: show error message in case we deactivate a plugin because of missing dependencies --- libs/README.md | 1 + libs/Zend/Session.php | 13 +++++++++++++ 2 files changed, 14 insertions(+) (limited to 'libs') diff --git a/libs/README.md b/libs/README.md index f5a061a1dc..083684c962 100644 --- a/libs/README.md +++ b/libs/README.md @@ -30,3 +30,4 @@ third-party libraries: - ZF-10871 - undefined variables when socket support disabled - fix #6980 ("Array to string conversion") in `Zend/Session/Exception.php` - fix Zend/Validate using deprecated iconv_set_encoding() + - Make sure sessions work when storing notifications diff --git a/libs/Zend/Session.php b/libs/Zend/Session.php index b5177c18fd..8b55a17b6d 100644 --- a/libs/Zend/Session.php +++ b/libs/Zend/Session.php @@ -491,6 +491,10 @@ class Zend_Session extends Zend_Session_Abstract self::regenerateId(); } + if (isset($_SESSION['data']) && is_string($_SESSION['data'])) { + $_SESSION = unserialize(base64_decode($_SESSION['data'])); + } + // run validators if they exist if (isset($_SESSION['__ZF']['VALID'])) { self::_processValidators(); @@ -688,8 +692,17 @@ class Zend_Session extends Zend_Session_Abstract parent::$_writable = false; } + if (isset($_SESSION)) { + $sessionBkp = $_SESSION; + $_SESSION = array('data' => base64_encode(serialize($_SESSION))); + } + session_write_close(); self::$_writeClosed = true; + + if (isset($sessionBkp)) { + $_SESSION = $sessionBkp; + } } -- cgit v1.2.3