mirror of
https://github.com/e107inc/e107.git
synced 2025-08-13 18:14:26 +02:00
Fix all PHP 8.1 test failures
* `strftime()` has been replaced with a polyfill based on `DateTime`. * Explicit type casts/assertions added where required by PHP 8.1 * `filter_var(…, FILTER_SANITIZE_STRING)` replaced with `strip_tags()` or HTML entity encoding of quotation marks, depending on a guess of what the intended "sanitization" was * `http_build_query()` usage type mismatches fixed * Removed usages of the `FILE_TEXT` constant * To avoid breaking PHP 5.6 compatibility (function return types), `e_session_db` no longer implements `SessionHandlerInterface`. Instead, the alternative non-OOP invocation of `session_set_save_handler()` is used instead to apply the session handler. * The shim for `strptime()` still calls the native function if available but now suppresses the deprecation warning. * `e_db_pdo` explicitly asks for `PDO::ATTR_STRINGIFY_FETCHES` to maintain consistent behavior with past versions of PHP. * `e_db_mysql` explicitly sets `mysqli_report(MYSQLI_REPORT_OFF)` to maintain consistent behavior with past versions of PHP. * Removed pointless random number generator seed from `banner` plugin * Workaround for `COUNT(*)` SQL query in `validatorClass::dbValidateArray()` without a proper API for avoiding SQL injection
This commit is contained in:
@@ -397,6 +397,7 @@ class e_session
|
||||
if($key == null) // clear all under this namespace.
|
||||
{
|
||||
$this->_data = array(); // must be set to array() not unset.
|
||||
return $this;
|
||||
}
|
||||
|
||||
if(strpos($key,'/') !== false) // multi-dimensional
|
||||
@@ -538,7 +539,14 @@ class e_session
|
||||
// ini_set('session.save_handler', 'user');
|
||||
|
||||
$session = new e_session_db;
|
||||
session_set_save_handler($session, true);
|
||||
session_set_save_handler(
|
||||
[$session, 'open'],
|
||||
[$session, 'close'],
|
||||
[$session, 'read'],
|
||||
[$session, 'write'],
|
||||
[$session, 'destroy'],
|
||||
[$session, 'gc']
|
||||
);
|
||||
$session->setSaveHandler();
|
||||
break;
|
||||
|
||||
@@ -1112,7 +1120,12 @@ class e_core_session extends e_session
|
||||
}
|
||||
|
||||
|
||||
class e_session_db implements SessionHandlerInterface
|
||||
/**
|
||||
* Database session handler
|
||||
*
|
||||
* @todo PHP 8.1 support with {@see SessionHandlerInterface}
|
||||
*/
|
||||
class e_session_db #implements SessionHandlerInterface
|
||||
{
|
||||
/**
|
||||
* @var e_db
|
||||
|
Reference in New Issue
Block a user