gelöst Adressänderung auf Packstation nicht mehr möglich

Thema wurde von Clemens Thielecke, 28. September 2024 erstellt.

  1. Clemens Thielecke
    Clemens Thielecke Erfahrener Benutzer
    Registriert seit:
    16. Juli 2018
    Beiträge:
    56
    Danke erhalten:
    6
    Danke vergeben:
    30
    Moin zusammen, bin ich alleine mit dem Problem (Shopversion 4.9.4.1). Sobald der Kunde seine Adresse ändern will, und das DHL-Symbol zur Auswahl einer Packstation klickt gibt es einen Fehler:


    Wenn man auf das DHL Symbol klickt, landet man auf einer Fehlerseite:
    Unexpected error occurred...
    Syntax error in ...../theme/html/system/address_book_parcelshopfinder_result.html" on line 4 "{if preg_match('/\d\d:\d\d:\d\d/', $hour) === 1}" PHP function 'preg_match' not allowed by security setting

    Ich kann leider nicht genau sagen, wie lange dieser Fehler schon besteht

    Grüße

    Clemens
     
  2. Dominik Späte
    Dominik Späte Erfahrener Benutzer
    Registriert seit:
    16. Oktober 2018
    Beiträge:
    1.251
    Danke erhalten:
    1.141
    Danke vergeben:
    391
    Bekannter Bug, der wohl mit 5.0.0.0 behoben wird:
    https://tracker.gambio-server.net/issues/70997

    Man kann in der address_book_parcelshopfinder_result.html des genutzten Themes die Zeile
    Code:
    {if preg_match('/\d\d:\d\d:\d\d/', $hour) === 1}
    wie folgt ersetzen, um preg_match zu umgehen (ungetestet!):
    Code:
    {if strlen($hour) == 8 && $hour|substr:2:1 == ':' && $hour|substr:5:1 == ':' && is_numeric($hour|substr:0:2) && is_numeric($hour|substr:3:2) && is_numeric($hour|substr:6:2)}
    Nach der Änderung der Cache für die Seitenausgabe leeren.
     
  3. Clemens Thielecke
    Clemens Thielecke Erfahrener Benutzer
    Registriert seit:
    16. Juli 2018
    Beiträge:
    56
    Danke erhalten:
    6
    Danke vergeben:
    30
    Leider hat es für mich nicht funktioniert: PHP function 'strlen' not allowed by security setting
     
  4. Dominik Späte
    Dominik Späte Erfahrener Benutzer
    Registriert seit:
    16. Oktober 2018
    Beiträge:
    1.251
    Danke erhalten:
    1.141
    Danke vergeben:
    391
    Ah okay, sorry. Es geht nicht um die Funktion selbst, sondern um die Art des Aufrufs. Also dann statt
    Code:
    {if preg_match('/\d\d:\d\d:\d\d/', $hour) === 1}
    so:
    Code:
    {if '/^\d{2}:\d{2}:\d{2}$/'|preg_match:$hour === 1}
     
  5. Clemens Thielecke
    Clemens Thielecke Erfahrener Benutzer
    Registriert seit:
    16. Juli 2018
    Beiträge:
    56
    Danke erhalten:
    6
    Danke vergeben:
    30
    Super, danke. Das hat großartig funktioniert!