File tree Expand file tree Collapse file tree 3 files changed +51
-1
lines changed Expand file tree Collapse file tree 3 files changed +51
-1
lines changed Original file line number Diff line number Diff line change @@ -2,6 +2,10 @@ PHP NEWS
2
2
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3
3
?? ??? 2022, PHP 8.0.25
4
4
5
+ - Session:
6
+ . Fixed bug GH-9583 (session_create_id() fails with user defined save handler
7
+ that doesn't have a validateId() method). (Girgias)
8
+
5
9
29 Sep 2022, PHP 8.0.24
6
10
7
11
- Core:
Original file line number Diff line number Diff line change @@ -1083,8 +1083,9 @@ PHPAPI int php_session_register_module(const ps_module *ptr) /* {{{ */
1083
1083
/* }}} */
1084
1084
1085
1085
/* Dummy PS module function */
1086
+ /* We consider any ID valid, so we return FAILURE to indicate that a session doesn't exist */
1086
1087
PHPAPI int php_session_validate_sid (PS_VALIDATE_SID_ARGS ) {
1087
- return SUCCESS ;
1088
+ return FAILURE ;
1088
1089
}
1089
1090
1090
1091
/* Dummy PS module function */
Original file line number Diff line number Diff line change
1
+ --TEST--
2
+ GH-9583: session_create_id() fails with user defined save handler that doesn't have a validateId() method
3
+ --EXTENSIONS--
4
+ session
5
+ --SKIPIF--
6
+ <?php include ('skipif.inc ' ); ?>
7
+ --FILE--
8
+ <?php
9
+
10
+ class SessionHandlerTester implements \SessionHandlerInterface
11
+ {
12
+
13
+ public function close (): bool { return true ; }
14
+
15
+ public function destroy ($ id ): bool { return true ; }
16
+
17
+ public function gc ($ max_lifetime ): int |false { return 1 ; }
18
+
19
+ public function open ($ path , $ name ): bool { return true ; }
20
+
21
+ public function read ($ id ): string { return '' ; }
22
+
23
+ public function write ($ id , $ data ): bool { return true ; }
24
+
25
+ //public function create_sid() { return uniqid(); }
26
+
27
+ //public function validateId($key) { return true; }
28
+ }
29
+
30
+ $ obj = new SessionHandlerTester ();
31
+ ini_set ('session.use_strict_mode ' ,'1 ' );
32
+ session_set_save_handler ($ obj );
33
+ session_start ();
34
+
35
+ echo "\nvalidateId() " .(method_exists ($ obj ,'validateId ' )?('returns ' .($ obj ->validateId (1 )?'true ' :'false ' )):'is commented out ' );
36
+ echo "\n" ;
37
+ $ sessionId = session_create_id ();
38
+ echo "\nSession ID: " .$ sessionId ;
39
+ echo "\n" ;
40
+
41
+ ?>
42
+ --EXPECTF--
43
+ validateId() is commented out
44
+
45
+ Session ID:%s
You can’t perform that action at this time.
0 commit comments