From 6f7ce4f10544a006981518f7ab63dd812a5bd299 Mon Sep 17 00:00:00 2001 From: hmczju Date: Sun, 19 Mar 2017 02:40:03 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8DSession::prefix('xxx');?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=BD=93=E5=89=8D=E4=BD=9C=E7=94=A8=E5=9F=9F?= =?UTF-8?q?BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Session在执行第一次set或者get等操作后才会执行一次Session初始化。 而在此之前调用Session::prefix('xxx');方法设置当前控制器的Session作用域会被之后的第一次set或者get等操作调用self::init();覆盖Session::prefix('xxx');设置。 我这里的改变使得可以在第一次session操作之前通过Session::prefix('xxx');有效设置作用域 --- library/think/Session.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/library/think/Session.php b/library/think/Session.php index 35726220..341dce8b 100644 --- a/library/think/Session.php +++ b/library/think/Session.php @@ -56,8 +56,10 @@ class Session $isDoStart = true; } - if (isset($config['prefix'])) { - self::$prefix = $config['prefix']; + if (self::$prefix === '') { + if (isset($config['prefix'])) { + self::$prefix = $config['prefix']; + } } if (isset($config['var_session_id']) && isset($_REQUEST[$config['var_session_id']])) { session_id($_REQUEST[$config['var_session_id']]); From a4c622a4a7ae2b7fe4f50f75aa596d34fd032025 Mon Sep 17 00:00:00 2001 From: hmczju Date: Sun, 19 Mar 2017 02:52:31 +0800 Subject: [PATCH 2/4] Update Session.php --- library/think/Session.php | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/library/think/Session.php b/library/think/Session.php index 341dce8b..adf93441 100644 --- a/library/think/Session.php +++ b/library/think/Session.php @@ -56,10 +56,8 @@ class Session $isDoStart = true; } - if (self::$prefix === '') { - if (isset($config['prefix'])) { - self::$prefix = $config['prefix']; - } + if (isset($config['prefix']) && self::$prefix === '') { + self::$prefix = $config['prefix']; } if (isset($config['var_session_id']) && isset($_REQUEST[$config['var_session_id']])) { session_id($_REQUEST[$config['var_session_id']]); From ca55c135cdd5a0181d5d8ecf38b4075aab690556 Mon Sep 17 00:00:00 2001 From: hmczju Date: Sun, 19 Mar 2017 03:01:27 +0800 Subject: [PATCH 3/4] Update Session.php --- library/think/Session.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/think/Session.php b/library/think/Session.php index adf93441..ed0d0b57 100644 --- a/library/think/Session.php +++ b/library/think/Session.php @@ -56,7 +56,7 @@ class Session $isDoStart = true; } - if (isset($config['prefix']) && self::$prefix === '') { + if (isset($config['prefix']) && self::$prefix === '' && self::$prefix === null) { self::$prefix = $config['prefix']; } if (isset($config['var_session_id']) && isset($_REQUEST[$config['var_session_id']])) { From 02948acc3192f2e3ee7973549abc7e7a7f22af32 Mon Sep 17 00:00:00 2001 From: hmczju Date: Sun, 19 Mar 2017 03:18:36 +0800 Subject: [PATCH 4/4] Update Session.php --- library/think/Session.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/think/Session.php b/library/think/Session.php index ed0d0b57..d5a6a5a5 100644 --- a/library/think/Session.php +++ b/library/think/Session.php @@ -56,7 +56,7 @@ class Session $isDoStart = true; } - if (isset($config['prefix']) && self::$prefix === '' && self::$prefix === null) { + if (isset($config['prefix']) && (self::$prefix === '' || self::$prefix === null)) { self::$prefix = $config['prefix']; } if (isset($config['var_session_id']) && isset($_REQUEST[$config['var_session_id']])) {