PITS /
01488: PHP 8.1 logs deprecation and warning...
Summary: PHP 8.1 logs deprecation and warning...
Created: 2023-03-17 10:43
Status: Closed, fixed for 2.3.22
Category: PHP Compatibility
From: JohnnyN
Assigned:
Priority: 1
Version: 2.3.21
OS: Linux/Apache/PHP-8.1
Description: When PmWiki 2.3.21 redirects, this gets logged in the PHP 8.1 log:
PHP Deprecated: preg_match(): Passing null to parameter #2 ($subject) of type string is deprecated in /path/to/public_html/pmwiki.php on line 1970 PHP Warning: Undefined variable $anchor in /path/to/public_html/pmwiki.php on line 1975
Patch, compatible with PHP 5.3, according to the PHP5 manual:
--- pmwiki-2.3.21.php 2023-02-13 08:36:27.000000000 +0100
+++ pmwiki-2.3.21-patched.php 2023-03-17 11:16:24.002218245 +0100
@@ -1967,12 +1967,12 @@
if (@$opt['from']
&& !MatchPageNames($pagename, FixGlob($opt['from'], '$1*.$2')))
return '';
- if (preg_match('/^30[1237]$/', @$opt['status']))
+ if (isset($opt['status']) && preg_match('/^30[1237]$/', $opt['status']))
header("HTTP/1.1 {$opt['status']}");
Redirect($to, "{\$PageUrl}"
. (IsEnabled($EnableRedirectQuiet, 0) && IsEnabled($opt['quiet'], 0)
? '' : "?from=$pagename")
- . $anchor);
+ . (isset($anchor) ? $anchor : ''));
exit();
}
Best regards :o)
Johnny :o)
Thanks, fixed with strval(@$opt['status']) as we usually do. --Petko