diff options
-rw-r--r-- | ext/session/mod_user_class.c | 1 | ||||
-rw-r--r-- | ext/session/tests/bug63379.phpt | 57 | ||||
-rw-r--r-- | ext/session/tests/bug63379_nodestroy.phpt | 57 |
3 files changed, 114 insertions, 1 deletions
diff --git a/ext/session/mod_user_class.c b/ext/session/mod_user_class.c index 70d2f40df1..4edac28b86 100644 --- a/ext/session/mod_user_class.c +++ b/ext/session/mod_user_class.c @@ -121,7 +121,6 @@ PHP_METHOD(SessionHandler, destroy) return; } - PS(mod_user_is_open) = 0; RETVAL_BOOL(SUCCESS == PS(default_mod)->s_destroy(&PS(mod_data), key TSRMLS_CC)); } /* }}} */ diff --git a/ext/session/tests/bug63379.phpt b/ext/session/tests/bug63379.phpt new file mode 100644 index 0000000000..80941828c8 --- /dev/null +++ b/ext/session/tests/bug63379.phpt @@ -0,0 +1,57 @@ +--TEST-- +Bug #63379: Warning when using session_regenerate_id(TRUE) with a SessionHandler +--INI-- +session.save_handler=files +session.name=PHPSESSID +--SKIPIF-- +<?php include('skipif.inc'); ?> +--FILE-- +<?php + +ob_start(); + +$handler = new SessionHandler; +session_set_save_handler($handler); + +session_start(); + +$_SESSION['foo'] = 'hello'; +var_dump($_SESSION); + +session_regenerate_id(true); + +echo "*** Regenerated ***\n"; +var_dump($_SESSION); + +$_SESSION['bar'] = 'world'; + +var_dump($_SESSION); + +session_write_close(); +session_unset(); + +session_start(); +var_dump($_SESSION); + +--EXPECTF-- +array(1) { + ["foo"]=> + string(5) "hello" +} +*** Regenerated *** +array(1) { + ["foo"]=> + string(5) "hello" +} +array(2) { + ["foo"]=> + string(5) "hello" + ["bar"]=> + string(5) "world" +} +array(2) { + ["foo"]=> + string(5) "hello" + ["bar"]=> + string(5) "world" +} diff --git a/ext/session/tests/bug63379_nodestroy.phpt b/ext/session/tests/bug63379_nodestroy.phpt new file mode 100644 index 0000000000..03a9ae74d9 --- /dev/null +++ b/ext/session/tests/bug63379_nodestroy.phpt @@ -0,0 +1,57 @@ +--TEST-- +Bug #63379: Warning when using session_regenerate_id(TRUE) with a SessionHandler +--INI-- +session.save_handler=files +session.name=PHPSESSID +--SKIPIF-- +<?php include('skipif.inc'); ?> +--FILE-- +<?php + +ob_start(); + +$handler = new SessionHandler; +session_set_save_handler($handler); + +session_start(); + +$_SESSION['foo'] = 'hello'; +var_dump($_SESSION); + +session_regenerate_id(false); + +echo "*** Regenerated ***\n"; +var_dump($_SESSION); + +$_SESSION['bar'] = 'world'; + +var_dump($_SESSION); + +session_write_close(); +session_unset(); + +session_start(); +var_dump($_SESSION); + +--EXPECTF-- +array(1) { + ["foo"]=> + string(5) "hello" +} +*** Regenerated *** +array(1) { + ["foo"]=> + string(5) "hello" +} +array(2) { + ["foo"]=> + string(5) "hello" + ["bar"]=> + string(5) "world" +} +array(2) { + ["foo"]=> + string(5) "hello" + ["bar"]=> + string(5) "world" +} |