Passing null to parameter #3 ($subject) of type array|string is deprecated

  • Betroffene Version
    WoltLab Suite 5.5
    Betroffene App
    WoltLab Suite Core

    Nach Installation des Viecode-Shops:

    Aufgerufene URL
    GET /acp/index.php
    Referrer
    WoltLab Suite
    5.5.2
    PHP
    8.1.8
    Fehlermeldung
    str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated
    Art
    wcf\system\exception\ErrorException
    Datei (Zeile)
    /wsc/lib/system/WCF.class.php (341)
    Template Context
    } ?> </ul> </li> ====> <?php if ($this->v['__wcf']->session->getPermission('admin.configuration.package.canUpdatePackage') && $this->v['__wcf']->getAvailableUpdates()) { ?> <li> <a href="<?php $this->tagStack[] = ['link', ['controller' => 'PackageUpdate']]; $this->pluginObjects['wcf\system\template\plugin\LinkBlockTemplatePlugin']->init($this->tagStack[count($this->tagStack) - 1][1], $this); while ($this->pluginObjects['wcf\system\template\plugin\LinkBlockTemplatePlugin']->next($this)) { ob_start(); ?><?php echo $this->pluginObjects['wcf\system\template\plugin\LinkBlockTemplatePlugin']->execute($this->tagStack[count($this->tagStack) - 1][1], ob_get_clean(), $this); } array_pop($this->tagStack);?>" class="jsTooltip" title="Aktualisierungen"><span class="icon icon32 fa-refresh"></span> <span class="badge badgeUpdate"><?=wcf\util\StringUtil::formatNumeric($this->v['__wcf']->getAvailableUpdates());?></span></a> </li>
    Stacktrace
    1. [internal function] (?): wcf\system\WCF::handleError(…)
    2. /wsc/lib/data/package/Package.class.php (435): str_replace(…)
    3. /wsc/lib/data/package/Package.class.php (417): wcf\data\package\Package::formatVersionForCompare(…)
    4. /wsc/lib/system/package/PackageUpdateDispatcher.class.php (767): wcf\data\package\Package::compareVersion(…)
    5. /wsc/lib/system/cache/builder/PackageUpdateCacheBuilder.class.php (22): wcf\system\package\PackageUpdateDispatcher->getAvailableUpdates(…)
    6. /wsc/lib/system/cache/builder/AbstractCacheBuilder.class.php (42): wcf\system\cache\builder\PackageUpdateCacheBuilder->rebuild(…)
    7. /wsc/lib/system/WCF.class.php (1120): wcf\system\cache\builder\AbstractCacheBuilder->getData(…)
    8. /wsc/acp/templates/compiled/0_wcf_1_index.php (469): wcf\system\WCF->getAvailableUpdates(…)
    9. /wsc/lib/system/template/TemplateEngine.class.php (350): include(…)
    10. /wsc/lib/page/AbstractPage.class.php (390): wcf\system\template\TemplateEngine->display(…)
    11. /wsc/lib/acp/page/IndexPage.class.php (221): wcf\page\AbstractPage->show(…)
    12. /wsc/lib/page/AbstractPage.class.php (135): wcf\acp\page\IndexPage->show(…)
    13. /wsc/lib/system/request/Request.class.php (90): wcf\page\AbstractPage->__run(…)
    14. /wsc/lib/system/request/RequestHandler.class.php (107): wcf\system\request\Request->execute(…)
    15. /wsc/acp/index.php (11): wcf\system\request\RequestHandler->handle(…)
  • Tim Düsterhus 19. Juli 2022 um 10:41

    Hat das Label Duplikat hinzugefügt.
    • Offizieller Beitrag

    Hallo,

    Ich hatte nur bedenken, dass das evtl. nicht weiter verfolgt wird, weil es dort ja um die Kombination 5.4 + 8.1 geht und nicht wie hier, um 5.5, die ja im Gegensatz zu 5.4 vollständig PHP 8.1 kompatibel ist.

    nein, das Thema haben wir ergebnisoffen beurteilt. Wir wissen ja grundsätzlich auch, welche Probleme mit PHP 8.1 uns bekannt (und gefixt sind). Ich habe auch schon eine Vermutung für die Ursache, aber noch keine Zeit, mich im Detail damit zu beschäftigen. Wenn es aber (wie du sagst) die Seite komplett brickt, dann schaue ich mal, ob ich es kurzfristig reproduziert bekomme. Kannst du mir (gerne per Ticket) zukommen lassen, welche Paketserver bei dir eingerichtet sind und ob diese jeweils Zugangsdaten hinterlegt haben?

  • Nachtrag: Die Deaktivierung über die DB (und anschließendes Neustarten von Redis) brachte keine Änderung. Die Seite bleibt tot.

    Kannst du mir (gerne per Ticket) zukommen lassen, welche Paketserver bei dir eingerichtet sind und ob diese jeweils Zugangsdaten hinterlegt haben?

    Nur https://www.viecode.com/update/5.5/ (mit Zugangsdaten).

    Paketserver eingerichtet -> Authentifizierungscode hinterlegt -> Shop installiert -> Ende.

  • Hallo,

    Redis persistiert per Default auf Disk, möglicherweise hat es beim Neustart den alten Cache geladen. Probiere: FLUSHALL auf der CLI, wenn du sonst keine wichtigen Daten in Redis speicherst.

    Hatte ich bereits getan:

    Code
    docker exec -it 0f176716a16f redis-cli FLUSHALL

    Das Problem wird vom Paket com.viecode.api.sandbox verursacht. Der "fehlerhafte" Datensatz kommt jedoch von http://store.woltlab.com/5.5/. Das Problem ist, dass ich auf dem offiziellen Server keinen Zugriff auf den Shop, bzw. das Paket habe.

    Es wird also immer dann auftreten, wenn man Plugins von Drittentwicklern über inoffizielle Paketserver bezieht, auf die man auf den offiziellen Servern keinen Zugriff hat (ggf. auch umgekehrt, das haben wir nicht getestet).

  • Verstehe nicht was ihr hier schreibt.

    Mein Hoster hat heute die PHP 8.1 als Standard eingestellt, folge davon eine Fehlermeldung:

    preg_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated

    Hab die PHP 8.0 eingestellt und alles geht wieder.

    Gruß Thomas

  • Wed, 03 May 2023 11:38:46 +0000

    Message: preg_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated

    PHP version: 8.1.18

    WoltLab Suite version: 5.5.11

    Request URI: GET /wb5/forum/index.php?board/19-nu-ma-tacheles/

    Referrer: https://verkehrsberichte.de/wb5/forum/index.php?board-list/

    User Agent: Mozilla/5.0 (Linux; Android 13; Nokia X10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.5481.192 Mobile Safari/537.36 OPR/74.3.3922.71982

    Peak Memory Usage: 15611752/1073741824

    ======

    Error Class: wcf\system\exception\ErrorException

    Error Message: preg_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated

    Error Code: 0

    File: /home/www/doc/8620/verkehrsberichte.de/www/wb5/lib/system/WCF.class.php (341)

    Extra Information: -

    Stack Trace: [{"function":"handleError","class":"wcf\\system\\WCF","type":"::","file":"[internal function]","line":"?","args":[]},{"file":"\/home\/www\/doc\/8620\/verkehrsberichte.de\/www\/wb5\/lib\/system\/event\/listener\/VisitorListener.class.php","line":37,"function":"preg_replace","class":"","type":"","args":[]},{"file":"\/home\/www\/doc\/8620\/verkehrsberichte.de\/www\/wb5\/lib\/system\/event\/EventHandler.class.php","line":172,"function":"execute","class":"wcf\\system\\event\\listener\\VisitorListener","type":"->","args":[]},{"file":"\/home\/www\/doc\/8620\/verkehrsberichte.de\/www\/wb5\/lib\/system\/event\/EventHandler.class.php","line":240,"function":"executeListeners","class":"wcf\\system\\event\\EventHandler","type":"->","args":[]},{"file":"\/home\/www\/doc\/8620\/verkehrsberichte.de\/www\/wb5\/lib\/system\/template\/TemplateEngine.class.php","line":355,"function":"fireAction","class":"wcf\\system\\event\\EventHandler","type":"->","args":[]},{"file":"\/home\/www\/doc\/8620\/verkehrsberichte.de\/www\/wb5\/lib\/page\/AbstractPage.class.php","line":390,"function":"display","class":"wcf\\system\\template\\TemplateEngine","type":"->","args":[]},{"file":"\/home\/www\/doc\/8620\/verkehrsberichte.de\/www\/wb5\/lib\/page\/AbstractPage.class.php","line":135,"function":"show","class":"wcf\\page\\AbstractPage","type":"->","args":[]},{"file":"\/home\/www\/doc\/8620\/verkehrsberichte.de\/www\/wb5\/lib\/system\/request\/Request.class.php","line":90,"function":"__run","class":"wcf\\page\\AbstractPage","type":"->","args":[]},{"file":"\/home\/www\/doc\/8620\/verkehrsberichte.de\/www\/wb5\/lib\/system\/request\/RequestHandler.class.php","line":107,"function":"execute","class":"wcf\\system\\request\\Request","type":"->","args":[]},{"file":"\/home\/www\/doc\/8620\/verkehrsberichte.de\/www\/wb5\/forum\/index.php","line":11,"function":"handle","class":"wcf\\system\\request\\RequestHandler","type":"->","args":[]}]

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!