[pmwiki-users] (:pagelist count=10..:) after update to php8

Armin Bühler armin at pan.ddnss.de
Sat Aug 20 02:17:49 PDT 2022


The patch works.

Thanks for the fast reaction.
Armin

On Sa, 2022-08-20 at 10:13 +0200, Petko Yotov wrote:
> На 20/08/2022 09:24, Armin Bühler написа:
> > After OS update from ubuntu 20 to 22.04 which also updates php7.x
> > to
> > php8.1.2 I've get an empty page and log file shows:
> > 
> > [Sat Aug 20 08:52:01.815450 2022] [proxy_fcgi:error] [pid 335456]
> > [client 192.168.1.248:52922] AH01071: Got error 'PHP message: PHP
> > Fatal
> > error:  Uncaught TypeError: Unsupported operand types: string + int
> > in
> > /data/www/pmwiki/scripts/pagelist.php:664
> ...
> > 
> > The pmwiki directive which causes the error message is:
> > (:pagelist group=FAQ count=16..:)
> > The error started after the php Update. I think the behavior of the
> > return values from explode() has changed.
> 
> Thanks for reporting this, fixed for 2.3.10, to be released in the
> next 
> few days.
> 
> You can get a partial export with only the files changed since 
> pmwiki-2.3.9 from the page ChangeLog:
> 
>    https://www.pmwiki.org/wiki/PmWiki/ChangeLog
> 
> If you test it, please report if it works, or we missed something
> else.
> 
> 
> > I solved this by adding 2 lines which checks the returned values of
> > explode() at line 663 in scripts/pagelist.php:
> > ...
> >   list($r0, $r1) = explode('..', $range);
> >   if (!isset($r0) || $r0 == "") $r0 = -1;
> >   if (!isset($r1) || $r1 == "") $r1 = -1;
> 
> Actually, when a value was empty or null, for arithmetic operations 
> previous PHP versions considered it 0, not -1. (Now in the same cases
> PHP raises an error.)
> 
> The simplest fix may be to do $r0 = intval($r0); and 2 similar 
> occurrences.
> 
> Petko




More information about the pmwiki-users mailing list