فهرست منبع

session cleanups - fix ZF-3209, ZF-5806

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@19875 44c647ce-9c0f-0410-b52a-842ac1e357ba
stas 16 سال پیش
والد
کامیت
ef568a7280
2فایلهای تغییر یافته به همراه12 افزوده شده و 7 حذف شده
  1. 8 6
      library/Zend/Session.php
  2. 4 1
      library/Zend/Session/Namespace.php

+ 8 - 6
library/Zend/Session.php

@@ -528,7 +528,7 @@ class Zend_Session extends Zend_Session_Abstract
                 // Expire Namespace by Time (ENT)
                 if (isset($namespace_metadata['ENT']) && ($namespace_metadata['ENT'] > 0) && (time() > $namespace_metadata['ENT']) ) {
                     unset($_SESSION[$namespace]);
-                    unset($_SESSION['__ZF'][$namespace]['ENT']);
+                    unset($_SESSION['__ZF'][$namespace]);
                 }
 
                 // Expire Namespace by Global Hop (ENGH)
@@ -540,7 +540,7 @@ class Zend_Session extends Zend_Session_Abstract
                             parent::$_expiringData[$namespace] = $_SESSION[$namespace];
                             unset($_SESSION[$namespace]);
                         }
-                        unset($_SESSION['__ZF'][$namespace]['ENGH']);
+                        unset($_SESSION['__ZF'][$namespace]);
                     }
                 }
 
@@ -550,12 +550,11 @@ class Zend_Session extends Zend_Session_Abstract
                         if (time() > $time) {
                             unset($_SESSION[$namespace][$variable]);
                             unset($_SESSION['__ZF'][$namespace]['ENVT'][$variable]);
-
-                            if (empty($_SESSION['__ZF'][$namespace]['ENVT'])) {
-                                unset($_SESSION['__ZF'][$namespace]['ENVT']);
-                            }
                         }
                     }
+                    if (empty($_SESSION['__ZF'][$namespace]['ENVT'])) {
+                        unset($_SESSION['__ZF'][$namespace]['ENVT']);
+                    }
                 }
 
                 // Expire Namespace Variables by Global Hop (ENVGH)
@@ -571,6 +570,9 @@ class Zend_Session extends Zend_Session_Abstract
                             unset($_SESSION['__ZF'][$namespace]['ENVGH'][$variable]);
                         }
                     }
+		    if(empty($_SESSION['__ZF'][$namespace]['ENVGH'])) {
+			unset($_SESSION['__ZF'][$namespace]['ENVGH']);	
+                    }
                 }
             }
 

+ 4 - 1
library/Zend/Session/Namespace.php

@@ -167,7 +167,7 @@ class Zend_Session_Namespace extends Zend_Session_Abstract implements IteratorAg
                             self::$_expiringData[$namespace] = $_SESSION[$namespace];
                             unset($_SESSION[$namespace]);
                         }
-                        unset($_SESSION['__ZF'][$namespace]['ENNH']);
+                        unset($_SESSION['__ZF'][$namespace]);
                     }
                 }
 
@@ -184,6 +184,9 @@ class Zend_Session_Namespace extends Zend_Session_Abstract implements IteratorAg
                             unset($_SESSION['__ZF'][$namespace]['ENVNH'][$variable]);
                         }
                     }
+                    if(empty($_SESSION['__ZF'][$namespace]['ENVNH'])) {
+                        unset($_SESSION['__ZF'][$namespace]['ENVNH']);
+                    }
                 }
             }