Author Topic: Droplets in 2.13.0 r63 unter PHP 8 - Problem!  (Read 207 times)

Offline hillschmidt

  • Posts: 362
Droplets in 2.13.0 r63 unter PHP 8 - Problem!
« on: April 28, 2022, 09:31:06 AM »
Mir ist heute ein Problem aufgefallen: meine Droplets laufen problemlos nach dem Update auf WB 2.13.0 r63 unter PHP 7.4 .
Sobald ich aber auf PHP 8 umstelle, werden die Inhalte nicht mehr aufgelöst - es erscheinen die Klammern [[ ]] und der Code, aber nicht die Auflösung.

URL: https://www.hillschmidt.de/wb - Startseite mit der englischen Flagge oben und der aktuellen Jahreszahl 2022 im Footer beim Copyright.

Sobald ich PHP 8 einstelle, erscheint an den Stellen
Code: [Select]
[[_englishVersion?url=277]]und
Code: [Select]
© 1999-[[SHOW_YEAR]] Andreas Schmidt
Hier die Codes der beiden Droplets (es sind aber auch andere betroffen)

SHOW_YEAR:
Code: [Select]
return date('Y');
englische Seite (nein, für mich ist eine echte zweisprachige Seite zu viel):
Code: [Select]
if (isset($url)) {
return '<p style="text-align:right;">
<a href="[wblink'.$url.']">english version
<img alt="" height="19" src="https://www.hillschmidt.de/wb/media/gif/flag_gbr.gif" width="33" /></a>
</p>';
} else {
return '<p style="text-align:right;">
<a>english version
<img alt="" height="19" src="https://www.hillschmidt.de/wb/media/gif/flag_gbr.gif" width="33" /></a>
</p>';
}

Hat jemand eine Idee?

Offline ruebenwurzel

  • Betatester
  • **
  • Posts: 8420
  • Gender: Male
  • Keep on Rockin
    • Familie Gallas Online
Re: Droplets in 2.13.0 r63 unter PHP 8 - Problem!
« Reply #1 on: April 28, 2022, 09:48:10 AM »
Hallo,

ein Upgrade auf 2.13.1 könnte das Problem beheben.

Matthias

Offline hillschmidt

  • Posts: 362
Re: Droplets in 2.13.0 r63 unter PHP 8 - Problem!
« Reply #2 on: April 28, 2022, 10:18:03 AM »
Update auf 2.13.1 bringt folgenden Fehler mit PHP 8 - zeigt aber auch die Droplets unter PHP 7.4 an:

Code: [Select]
There was an uncatched exception
preg_match(): Argument #3 ($matches) cannot be passed by reference
in line (57) of (/framework/Utils/IpAddress.php):

Dann lasse ich jetzt 2.13.1 r103 und mache ein neues Problem auf. OK?

Offline hgs

  • Betatester
  • **
  • Posts: 1540
    • EFG MG
Re: Droplets in 2.13.0 r63 unter PHP 8 - Problem!
« Reply #3 on: April 28, 2022, 10:39:37 AM »
Hast du den Patch 114 installiert? (hilft für das Problem wahrscheinlich nicht, aber uptodate ist immer gut :) )


Kannst du sagen welches Droplet es ist?
Evtl. hier posten
Sorry, den Anfangspost nicht ganz zu ende gelesen.

Alle von WB mitgelieferten Droplets sind php8 tauglich gefixt.
LG Harald

"Fange nie an, aufzuhören - höre nie auf, anzufangen." Marcus Tullius Cicero (106-43 v.Chr.)

Offline hgs

  • Betatester
  • **
  • Posts: 1540
    • EFG MG
Re: Droplets in 2.13.0 r63 unter PHP 8 - Problem!
« Reply #4 on: April 28, 2022, 10:43:51 AM »

Hier die Codes der beiden Droplets (es sind aber auch andere betroffen)

SHOW_YEAR:
Code: [Select]
return date('Y');


Das Droplet mal bitte so ergänzen:

Code: [Select]
$datum = date("Y");
return "$datum";
LG Harald

"Fange nie an, aufzuhören - höre nie auf, anzufangen." Marcus Tullius Cicero (106-43 v.Chr.)

Offline hillschmidt

  • Posts: 362
Re: Droplets in 2.13.0 r63 unter PHP 8 - Problem!
« Reply #5 on: April 28, 2022, 10:52:23 AM »
Code: [Select]
$datum = date("Y");
return "$datum";
macht keinen Unterschied :-(

Offline hgs

  • Betatester
  • **
  • Posts: 1540
    • EFG MG
Re: Droplets in 2.13.0 r63 unter PHP 8 - Problem!
« Reply #6 on: April 28, 2022, 11:03:47 AM »
Die Jahreszahl wird aber im Footer angezeigt, oder schau ich auf eine andere Domäne?

Auszug von deinem Link
© 1999-2022 Andreas Schmidt


Als Tester bin ich am Cache von diversen Browser schon verrückt geworden und die Entwickler haben Fehler gesucht, die es gar (nicht) mehr gab.
F5 wirkt da manchmal Wunder




LG Harald

"Fange nie an, aufzuhören - höre nie auf, anzufangen." Marcus Tullius Cicero (106-43 v.Chr.)

Offline hillschmidt

  • Posts: 362
Re: Droplets in 2.13.0 r63 unter PHP 8 - Problem!
« Reply #7 on: April 28, 2022, 11:10:23 AM »
Ich bin ja wieder auf 7.4 zurückgegangen ... sobald ich PHP 8 aktiviere, taucht das Problem auf.
Und den Cache lösche ich immer bei solchen Aktionen ...

Offline hgs

  • Betatester
  • **
  • Posts: 1540
    • EFG MG
Re: Droplets in 2.13.0 r63 unter PHP 8 - Problem!
« Reply #8 on: April 28, 2022, 12:50:36 PM »
Ich habe alles auf  php8.0 und es läuft auch alles,


das Droplet "year" nutze ich auch aktiv auf allen Domänen im Footer.


Sehr komisch, aber es gab ja im Tages-Rhythmus Patche, mal sehn was die Entwickler da noch so finden und  fix fixen.

LG Harald

"Fange nie an, aufzuhören - höre nie auf, anzufangen." Marcus Tullius Cicero (106-43 v.Chr.)

Offline crnogorac081

  • Posts: 2026
  • Gender: Male
Re: Droplets in 2.13.0 r63 unter PHP 8 - Problem!
« Reply #9 on: May 02, 2022, 11:37:57 AM »
Update auf 2.13.1 bringt folgenden Fehler mit PHP 8 - zeigt aber auch die Droplets unter PHP 7.4 an:

Code: [Select]
There was an uncatched exception
preg_match(): Argument #3 ($matches) cannot be passed by reference
in line (57) of (/framework/Utils/IpAddress.php):

Dann lasse ich jetzt 2.13.1 r103 und mache ein neues Problem auf. OK?

I am seing this after installing patch 114 , using wb portable with php 7.4

is there patch 115 published ?
UI / UX Designer

Offline Luisehahne

  • WebsiteBaker Org e.V.
  • **
  • Posts: 4512
  • Gender: Male
Re: Droplets in 2.13.0 r63 unter PHP 8 - Problem!
« Reply #10 on: May 02, 2022, 11:49:39 AM »
Patch R115 is under preparation, we will inform you

Dietmar
Note: Once the code has been generated, it is easy to debug. It's not a bug, it's a feature!

Offline crnogorac081

  • Posts: 2026
  • Gender: Male
Re: Droplets in 2.13.0 r63 unter PHP 8 - Problem!
« Reply #11 on: May 02, 2022, 12:20:03 PM »
Ok. Is there a quickfix for this line in IpAddress.php ?
UI / UX Designer

Offline Luisehahne

  • WebsiteBaker Org e.V.
  • **
  • Posts: 4512
  • Gender: Male
Re: Droplets in 2.13.0 r63 unter PHP 8 - Problem!
« Reply #12 on: May 02, 2022, 02:34:43 PM »
Ok. Is there a quickfix for this line in IpAddress.php ?
Fixed methode in /framework/Utils/IpAddress.php
Code: [Select]
<?php
    
public static function sanitizeIp(string $sRawIp): string
    
{
        
// clean address from netmask/prefix and port
        
$sPattern '/^[{\[]?([.:a-f0-9]*)(?:\/[0-1]*)?(?:[\]}]?.*)$/im';
        
$sIpAddress = \preg_replace($sPattern'$1'$sRawIp);
        if (\
strpos($sIpAddress':') === false) {
        
// sanitize IPv4 -------------------------------------------------------------- //
            
if (ip2long($sIpAddress) === false) {
                throw new \
InvalidArgumentException('illegal IPv4 address given!');
            }
        } else {
            
// sanitize IPv6 -------------------------------------------------------------- //
            // for backard compatibility it also check deprecated addressing where
            // IP includes a 32 bit IPv4 part and convert this into IPv6 format
            // sanitize IPv6 -------------------------------------------------------------- //
            
$sPattern '/^([:a-f0-9]*?)(?:(?:\:)([0-9]{1,3}(?:\.[0-9]{1,3}){3}))?$/is';
            
$aMatches = [];
            if (\
preg_match($sPattern$sIpAddress$aMatches)) {
                
$sIpAddress $aMatches[1].(isset($aMatches[2]) ? ':'.self::convertV4ToV6($aMatches[2]) : '');
            } else {
                throw new \
InvalidArgumentException('illegal IPv6 address given!');
            }
            
$sIpAddress self::expandIpV6($sIpAddress);
        }
        return 
$sIpAddress;
    }

Dietmar
Note: Once the code has been generated, it is easy to debug. It's not a bug, it's a feature!

Offline hgs

  • Betatester
  • **
  • Posts: 1540
    • EFG MG
Re: Droplets in 2.13.0 r63 unter PHP 8 - Problem!
« Reply #13 on: May 02, 2022, 02:55:42 PM »
Hallo Dietmar
Der TeilCode, den du gepostet hast, ist laut "Diff Ceck" identisch mit dem TeilCode aus patch 114 in der besagten Datei.

Heißt das, dass Patch 114 das Problem fixen würde?
LG Harald

"Fange nie an, aufzuhören - höre nie auf, anzufangen." Marcus Tullius Cicero (106-43 v.Chr.)

Offline crnogorac081

  • Posts: 2026
  • Gender: Male
Re: Droplets in 2.13.0 r63 unter PHP 8 - Problem!
« Reply #14 on: May 02, 2022, 03:37:34 PM »
I kind of solver it,

line 107
Code: [Select]
    public static function expandIpV6(string $sIpV6Address): string
    {
        $iPos = strpos($sIpV6Address, '::');
        if ($iPos !== false) {
//            $iInserts     = 8 - \count(\preg_split('/:/', $sIpV6Address, null, \PREG_SPLIT_NO_EMPTY));
// Replaced null with -1
            $iInserts     = 8 - \count(\preg_split('/:/', $sIpV6Address, -1, \PREG_SPLIT_NO_EMPTY));

I dont know if it is correct or not for further code I just saw preg_split documentation.

cheers
UI / UX Designer

Offline DarkViper

  • Forum administrator
  • *****
  • Posts: 3068
  • Gender: Female
Re: Droplets in 2.13.0 r63 unter PHP 8 - Problem!
« Reply #15 on: May 02, 2022, 04:00:09 PM »
-1 is ok..     (Y) :wink:
Der blaue Planet - er ist nicht unser Eigentum - wir haben ihn nur von unseren Nachkommen geliehen

"You have to take the men as they are… but you can not leave them like that !" :-P
Das tägliche Stoßgebet: Oh Herr, wirf Hirn vom Himmel !

Offline Luisehahne

  • WebsiteBaker Org e.V.
  • **
  • Posts: 4512
  • Gender: Male
Re: Droplets in 2.13.0 r63 unter PHP 8 - Problem!
« Reply #16 on: May 02, 2022, 04:03:51 PM »
Hallo Dietmar
Der TeilCode, den du gepostet hast, ist laut "Diff Ceck" identisch mit dem TeilCode aus patch 114 in der besagten Datei.

Heißt das, dass Patch 114 das Problem fixen würde?

Correct

Dietmar
Note: Once the code has been generated, it is easy to debug. It's not a bug, it's a feature!

Offline crnogorac081

  • Posts: 2026
  • Gender: Male
Re: Droplets in 2.13.0 r63 unter PHP 8 - Problem!
« Reply #17 on: May 02, 2022, 04:50:25 PM »
It looks like patch and this fix fixed some memory leak I had...Did anyone elxe experienced memory leak ?
UI / UX Designer

 

postern-length