File tree 2 files changed +38
-1
lines changed
2 files changed +38
-1
lines changed Original file line number Diff line number Diff line change @@ -2051,7 +2051,7 @@ PHP_FUNCTION(session_set_save_handler)
2051
2051
remove_user_shutdown_function ("session_shutdown" , sizeof ("session_shutdown" ) - 1 );
2052
2052
}
2053
2053
2054
- if (PS (mod ) && PS ( session_status ) != php_session_active && PS (mod ) != & ps_mod_user ) {
2054
+ if (PS (session_status ) != php_session_active && (! PS (mod ) || PS ( mod ) != & ps_mod_user ) ) {
2055
2055
ini_name = zend_string_init ("session.save_handler" , sizeof ("session.save_handler" ) - 1 , 0 );
2056
2056
ini_val = zend_string_init ("user" , sizeof ("user" ) - 1 , 0 );
2057
2057
PS (set_handler ) = 1 ;
Original file line number Diff line number Diff line change
1
+ --TEST--
2
+ Bug #80889 (Cannot set save handler when save_handler is invalid)
3
+ --SKIPIF--
4
+ <?php include ('skipif.inc ' ); ?>
5
+ --INI--
6
+ session.save_handler=whatever
7
+ --FILE--
8
+ <?php
9
+ class DummyHandler implements SessionHandlerInterface {
10
+ public function open ($ savePath , $ sessionName ) {
11
+ return true ;
12
+ }
13
+ public function close () {
14
+ return true ;
15
+ }
16
+ public function read ($ id ) {
17
+ return '' ;
18
+ }
19
+ public function write ($ id , $ data ) {
20
+ return true ;
21
+ }
22
+ public function destroy ($ id ) {
23
+ return true ;
24
+ }
25
+ public function gc ($ maxlifetime ) {
26
+ return true ;
27
+ }
28
+ }
29
+
30
+ $ initHandler = ini_get ('session.save_handler ' );
31
+ session_set_save_handler (new DummyHandler ());
32
+ $ setHandler = ini_get ('session.save_handler ' );
33
+ var_dump ($ initHandler , $ setHandler );
34
+ ?>
35
+ --EXPECT--
36
+ string(8) "whatever"
37
+ string(4) "user"
You can’t perform that action at this time.
0 commit comments