mirror of
https://github.com/php/php-src.git
synced 2025-08-21 01:45:16 +02:00
Merge branch 'master' of git.php.net:/php-src
This commit is contained in:
commit
825b5901df
1 changed files with 79 additions and 0 deletions
79
ext/session/tests/bug71162.phpt
Normal file
79
ext/session/tests/bug71162.phpt
Normal file
|
@ -0,0 +1,79 @@
|
|||
--TEST--
|
||||
updateTimestamp never called when session data is empty
|
||||
--INI--
|
||||
session.use_strict_mode=0
|
||||
--XFAIL--
|
||||
Current session module is designed to write empty session always. In addition,
|
||||
current session module only supports SessionHandlerInterface only from PHP 7.0.
|
||||
--FILE--
|
||||
<?php
|
||||
class MySessionHandler implements SessionUpdateTimestampHandlerInterface
|
||||
{
|
||||
public function open($path, $sessname) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
public function close() {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
public function read($sessid) {
|
||||
return '';
|
||||
}
|
||||
|
||||
public function write($sessid, $sessdata) {
|
||||
echo __FUNCTION__, PHP_EOL;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
public function destroy($sessid) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
public function gc($maxlifetime) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
public function create_sid() {
|
||||
return sha1(random_bytes(32));
|
||||
}
|
||||
|
||||
public function validateId($sid) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
public function updateTimestamp($sessid, $sessdata) {
|
||||
echo __FUNCTION__, PHP_EOL;
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
ob_start();
|
||||
$handler = new MySessionHandler();
|
||||
session_set_save_handler($handler);
|
||||
|
||||
session_id(sha1(''));
|
||||
var_dump(session_id());
|
||||
var_dump(session_start(['lazy_write'=>1]));
|
||||
session_commit();
|
||||
|
||||
session_id(sha1(''));
|
||||
var_dump(session_id());
|
||||
var_dump(session_start(['lazy_write'=>1]));
|
||||
session_commit();
|
||||
|
||||
session_id(sha1(''));
|
||||
var_dump(session_id());
|
||||
var_dump(session_start(['lazy_write'=>0]));
|
||||
session_commit();
|
||||
?>
|
||||
--EXPECT--
|
||||
string(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
|
||||
bool(true)
|
||||
write
|
||||
string(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
|
||||
bool(true)
|
||||
updateTimestamp
|
||||
string(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
|
||||
bool(true)
|
||||
write
|
Loading…
Add table
Add a link
Reference in a new issue