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
22|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
33?? ??? 2022, PHP 8.0.25
44
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+
5929 Sep 2022, PHP 8.0.24
610
711- 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) /* {{{ */
10831083/* }}} */
10841084
10851085/* Dummy PS module function */
1086+ /* We consider any ID valid, so we return FAILURE to indicate that a session doesn't exist */
10861087PHPAPI int php_session_validate_sid (PS_VALIDATE_SID_ARGS ) {
1087- return SUCCESS ;
1088+ return FAILURE ;
10881089}
10891090
10901091/* 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