mirror of
https://github.com/e107inc/e107.git
synced 2025-08-18 04:12:00 +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:
@@ -426,7 +426,7 @@ class e_db_pdo implements e_db
|
||||
if ($this->debugMode === true)
|
||||
{
|
||||
$aTrace = debug_backtrace();
|
||||
$pTable = $this->mySQLcurTable;
|
||||
$pTable = (string) $this->mySQLcurTable;
|
||||
|
||||
if(!strlen($pTable))
|
||||
{
|
||||
@@ -2558,6 +2558,11 @@ class e_db_pdo implements e_db
|
||||
private function setSQLMode()
|
||||
{
|
||||
$this->db_Query("SET SESSION sql_mode='NO_ENGINE_SUBSTITUTION';");
|
||||
/**
|
||||
* Disable PHP 8.1 PDO result set typing casting for consistency with PHP 5.6 through 8.0
|
||||
* @link https://github.com/php/php-src/blob/4025cf2875f895e9f7193cebb1c8efa4290d052e/UPGRADING#L130-L134
|
||||
*/
|
||||
$this->mySQLaccess->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, true);
|
||||
}
|
||||
|
||||
|
||||
@@ -2623,7 +2628,7 @@ class e_db_pdo implements e_db
|
||||
{
|
||||
if (is_readable(e_CACHE_DB.$tableName.'.php'))
|
||||
{
|
||||
$temp = file_get_contents(e_CACHE_DB.$tableName.'.php', FILE_TEXT);
|
||||
$temp = file_get_contents(e_CACHE_DB.$tableName.'.php');
|
||||
if ($temp !== false)
|
||||
{
|
||||
$typeDefs = e107::unserialize($temp);
|
||||
|
Reference in New Issue
Block a user