diff options
author | J.M <me@mynetx.net> | 2012-06-30 17:20:19 +0400 |
---|---|---|
committer | J.M <me@mynetx.net> | 2012-06-30 17:21:23 +0400 |
commit | 5dc0f782f501ed011a918483e4e69085bff722b0 (patch) | |
tree | 2e3a598ebb09793dde09f0ec1b8cc94657d0df65 /import_status.php | |
parent | a042003c329a807e4025b198f0dbe37ad0ae2499 (diff) |
Fix PHP 5.4 upload progress working only with session.upload_progress.cleanup set to Off
Diffstat (limited to 'import_status.php')
-rw-r--r-- | import_status.php | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/import_status.php b/import_status.php index d056c3e1d4..4e06ca4103 100644 --- a/import_status.php +++ b/import_status.php @@ -25,12 +25,12 @@ if (version_compare(PHP_VERSION, '5.4.0', '>=') ) { $sessionupload = array(); - $prefix = ini_get('session.upload_progress.prefix'); + define('UPLOAD_PREFIX', ini_get('session.upload_progress.prefix')); session_start(); foreach ($_SESSION as $key => $value) { // only copy session-prefixed data - if (substr($key, 0, strlen($prefix)) == $prefix) { + if (substr($key, 0, strlen(UPLOAD_PREFIX)) == UPLOAD_PREFIX) { $sessionupload[$key] = $value; } } @@ -54,6 +54,15 @@ if (defined('SESSIONUPLOAD')) { foreach ($sessionupload as $key => $value) { $_SESSION[$key] = $value; } + + // remove session upload data that are not set anymore + foreach ($_SESSION as $key => $value) { + if (substr($key, 0, strlen(UPLOAD_PREFIX)) == UPLOAD_PREFIX + && ! isset($sessionupload[$key]) + ) { + unset($_SESSION[$key]); + } + } } /** |