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

Offline hillschmidt

  • Posts: 365
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: 8441
  • 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: 365
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: 1620
    • 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: 1620
    • 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: 365
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: 1620
    • 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: 365
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: 1620
    • 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: 2067
  • 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 ?
Web developer

Offline Luisehahne

  • WebsiteBaker Org e.V.
  • **
  • Posts: 4522
  • 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: 2067
  • 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 ?
Web developer

Offline Luisehahne

  • WebsiteBaker Org e.V.
  • **
  • Posts: 4522
  • 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: 1620
    • 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: 2067
  • 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
Web developer

Offline DarkViper

  • Forum administrator
  • *****
  • Posts: 3073
  • 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: 4522
  • 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: 2067
  • 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 ?
Web developer

Offline hillschmidt

  • Posts: 365
Re: Droplets in 2.13.0 r63 unter PHP 8 - Problem!
« Reply #18 on: August 07, 2022, 08:34:34 PM »
Mit 2.13.2 r133 und PHP 8.0 habe ich weiterhin Probleme mit Droplets.

Auf bibelquiz.org wird der Fuß nicht mehr angezeigt; auf hillschmidt.de wird im Footer [[year]] statt 2022 angezeigt. Weitere Droplet, die unter PHP 7.x funktioniert haben, werden nicht mehr korrekt angezeigt.

Ich habe jetzt erst einmal PHP 8.0 gelassen - bin aber ratlos.

Offline Luisehahne

  • WebsiteBaker Org e.V.
  • **
  • Posts: 4522
  • Gender: Male
Re: Droplets in 2.13.0 r63 unter PHP 8 - Problem!
« Reply #19 on: August 07, 2022, 11:01:42 PM »
Ich würde sagen du hast Probleme mit deinem Template, bzw. Scripte die den kompletten Seitenaufbau verhindern, schau in Seitenquelltext am Ende wird folgender Fehler geworfen und damit der Dom Aufbau untebrochen
Quote
<!-- div align=right><style type="text/css">.textus {color:#777777;font-size:0.8em;font-family:Arial;}</style>There was an uncatched exception<br />
Undefined constant "REMOTE_ADDR"<br />
in line (28) of (/usonline.php):<br />

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

Offline hillschmidt

  • Posts: 365
Re: Droplets in 2.13.0 r63 unter PHP 8 - Problem!
« Reply #20 on: August 08, 2022, 10:03:04 AM »
 :wink:
Ganz herzlichen Dank - das war die Funktion der Anzeige, wieviele user online sind ... natürlich ein Asbach Uralt Script!

Damit ist mein Problem gelöst - da aber noch andere sich im Thread bewegt haben, mag ich nicht "gelöst" nutzen...

Offline hillschmidt

  • Posts: 365
Re: Droplets in 2.13.0 r63 unter PHP 8 - Problem!
« Reply #21 on: August 08, 2022, 12:52:07 PM »
achso: es war simpel: PHP 8.x ist strikter und lässt
Code: [Select]
getenv('REMOTE_ADDR'); ohne '' nicht mehr durch ... kaum hatte ich das im Script korrigiert, funktionierte alles wie gewünscht ... Eigentlich müsste ich das (ebenfalls alte) Template komplett überarbeiten oder ersetzen ….

Offline frankyboy

  • Posts: 122
  • Gender: Male
  • Sächsischer Schlagerstar
    • wXw Wrestling
Re: Droplets in 2.13.0 r63 unter PHP 8 - Problem!
« Reply #22 on: August 31, 2022, 05:39:31 PM »
Hallo zusammen - habe nach Update auf 2.13.2 r133 ein anderes Problem mit den Droplets:
diese funktionieren an sich. Templateunabhängig auf normalen WYSIWYG-Seiten. Nicht jedoch im Newsmodule (3.9.22).

Symptom: es wird bereits nicht gespeichert. Egal ob selber erstellte Droplets oder Standards wie [[Lorem]] und so. Scheinbar lässt das Newsscript [[]] verschwinden. Solange ich [xyz] schreibe wird das gespeichert. Wenn ich <p>[[xyz]]</p> erstelle, wird <p>&nbsp;</p> gespeichert. Da ich das Newsmodul für meine Nutzer etwas verschlangt und modifiziert habe, hab ich auf einer anderen Seite es mit einem jungfräulichem Newsmodul nochmal probiert (auch 2.13.2. r133, Droblets aktuell, Newsmodul aktuell). Gleiches Verhalten: es wird nicht gespeichert.

Habt ihr Ideen oder Ansätze was ich probieren könnte?
Danke,
Frank

Offline frankyboy

  • Posts: 122
  • Gender: Male
  • Sächsischer Schlagerstar
    • wXw Wrestling
Re: Droplets in 2.13.0 r63 unter PHP 8 - Problem!
« Reply #23 on: August 31, 2022, 06:14:32 PM »
Scheint auch nix mit dem WYSISYW-Editor zu tun zu haben, habe den mal global für WB deaktiviert, jede Kombination aus [[egalwashiersteht]] wird nicht gespeichert. und weiterhin nur im newsmodul.
« Last Edit: August 31, 2022, 06:24:31 PM by dbs »

Offline dbs

  • Betatester
  • **
  • Posts: 8764
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Droplets in 2.13.0 r63 unter PHP 8 - Problem!
« Reply #24 on: August 31, 2022, 06:27:56 PM »
Scheint so im News Modul zu sein.
Der Entwickler hat da wahrscheinlich Sicherheitsbedenken und lässt Droplets nicht zu.
Passiert immer wieder mal.