1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-20 21:32:09 +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:
Nick Liu
2021-09-04 15:06:19 +02:00
parent 64cd796605
commit 20882920a0
54 changed files with 295 additions and 157 deletions

View File

@@ -787,26 +787,26 @@ $text .= "
$def = strtotime('December 21, 2012 3:45pm');
$inputdate = array( // TODO add more formats
"%A, %d %B, %Y" => strftime("%A, %d %B, %Y",$def),
"%A, %d %b, %Y" => strftime("%A, %d %b, %Y",$def),
"%a, %d %B, %Y" => strftime("%a, %d %B, %Y",$def),
"%a, %d %b, %Y" => strftime("%a, %d %b, %Y",$def),
"%A, %d %B, %Y" => e_date::strftime("%A, %d %B, %Y",$def),
"%A, %d %b, %Y" => e_date::strftime("%A, %d %b, %Y",$def),
"%a, %d %B, %Y" => e_date::strftime("%a, %d %B, %Y",$def),
"%a, %d %b, %Y" => e_date::strftime("%a, %d %b, %Y",$def),
"%A, %B %d, %Y" => strftime("%A, %B %d, %Y",$def),
"%A, %b %d, %Y" => strftime("%A, %b %d, %Y",$def),
"%A, %b %d, %y" => strftime("%A, %b %d, %y",$def),
"%A, %B %d, %Y" => e_date::strftime("%A, %B %d, %Y",$def),
"%A, %b %d, %Y" => e_date::strftime("%A, %b %d, %Y",$def),
"%A, %b %d, %y" => e_date::strftime("%A, %b %d, %y",$def),
"%B %d, %Y" => strftime("%B %d, %Y",$def),
"%b %d, %Y" => strftime("%b %d, %Y",$def),
"%b %d, %y" => strftime("%b %d, %y",$def),
"%B %d, %Y" => e_date::strftime("%B %d, %Y",$def),
"%b %d, %Y" => e_date::strftime("%b %d, %Y",$def),
"%b %d, %y" => e_date::strftime("%b %d, %y",$def),
"%d %B, %Y" => strftime("%d %B, %Y",$def),
"%d %b, %Y" => strftime("%d %b, %Y",$def),
"%d %b, %y" => strftime("%d %b, %y",$def),
"%d %B, %Y" => e_date::strftime("%d %B, %Y",$def),
"%d %b, %Y" => e_date::strftime("%d %b, %Y",$def),
"%d %b, %y" => e_date::strftime("%d %b, %y",$def),
"%Y-%m-%d" => strftime("%Y-%m-%d",$def),
"%d-%m-%Y" => strftime("%d-%m-%Y",$def),
"%m/%d/%Y" => strftime("%m/%d/%Y",$def)
"%Y-%m-%d" => e_date::strftime("%Y-%m-%d",$def),
"%d-%m-%Y" => e_date::strftime("%d-%m-%Y",$def),
"%m/%d/%Y" => e_date::strftime("%m/%d/%Y",$def)
);
@@ -815,19 +815,19 @@ $text .= "
$inputtime["%I:%M %p"] = strftime("%I:%M %p",$def);
$inputtime["%I:%M %p"] = e_date::strftime("%I:%M %p",$def);
if(e107::getDate()->supported('P'))
{
$inputtime["%I:%M %P"] = strftime("%I:%M %P",$def);
$inputtime["%I:%M %P"] = e_date::strftime("%I:%M %P",$def);
}
if(e107::getDate()->supported('l'))
{
$inputtime["%l:%M %p"] = strftime("%l:%M %p",$def);
$inputtime["%l:%M %P"] = strftime("%l:%M %P",$def);
$inputtime["%l:%M %p"] = e_date::strftime("%l:%M %p",$def);
$inputtime["%l:%M %P"] = e_date::strftime("%l:%M %P",$def);
}
$inputtime["%H:%M"] = strftime("%H:%M",$def);
$inputtime["%H:%M:%S"] = strftime("%H:%M:%S",$def);
$inputtime["%H:%M"] = e_date::strftime("%H:%M",$def);
$inputtime["%H:%M:%S"] = e_date::strftime("%H:%M:%S",$def);