ConPresso4 Community

Fragen, Antworten, Diskussionen rund um das Content Management System ConPresso

 
mod_form 4.1e vs. PHP 7.2

 
Neue Antwort erstellen    ConPresso4 Community Foren-Übersicht -> Modul Formular (Conpresso 4)
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Mr. Magpie
ConPresso-Profi


Anmeldungsdatum: 01.01.1970
Beiträge: 1004
Wohnort: Wuppertal

BeitragVerfasst am: 13.02.2019 00:05    Titel: mod_form 4.1e vs. PHP 7.2 Antworten mit Zitat

Ich habe bei mir eine Version 4.1e von mod_form im Einsatz (vgl. http://community.conpresso.de/viewtopic.php?p=27907#27907). Die enthält in mod_form/includes/actions.inc.php eine Funktion decode_entities():

Code:
function decode_entities($text) {
  $text= html_entity_decode($text,ENT_QUOTES,"ISO-8859-15"); #once
  $text= html_entity_decode($text,ENT_QUOTES,"ISO-8859-15"); #twice
  $text= preg_replace('/&#(\d+);/me',"chr(\\1)",$text); #decimal notation
  $text= preg_replace('/&#x([a-f0-9]+);/mei',"chr(0x\\1)",$text);  #hex notation
  return $text;
}


Unter PHP 7.2 müsste man - wegen des fehlenden /e-Modifier-Supports - die beiden preg_replace()-Zeilen ersetzen: "preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead"


Außerdem verursacht die Zeile

Code:
if ($activeModules[$directory]['auto_expire']=="yes")   $data['verfallsdatum']   = date('Y-m-d', time() + $activeModules[$directory]['expire_time']*86400 ) . ' 23:59:59';


unter PHP 7.2 einen Fehler: "A non-numeric value encountered"

Kannst du für die beiden Probleme bitte eine Lösung generieren?

_________________
Günther Ludwig
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 7057

BeitragVerfasst am: 13.02.2019 00:23    Titel: Antworten mit Zitat

Code:
function decode_entities($text) {
     $text= html_entity_decode($text,ENT_QUOTES,"ISO-8859-15"); #once
     $text= html_entity_decode($text,ENT_QUOTES,"ISO-8859-15"); #twice
     $text= preg_replace_callback('/&#(\d+);/m',function ($m) { return chr($m[1]); },$text); #decimal notation
     $text= preg_replace_callback('/&#x([a-f0-9]+);/mi',function ($m) { return chr("0x".$m[1]); },$text);  #hex notation
     return $text;
}


Wo im zweiten Fall das Problem sein soll sehe ich nicht. Aber seit PHP 7.1 wird da wohl etwas pingelig mit Warnungen gearbeitet, also:

Code:
if ($activeModules[$directory]['auto_expire']=="yes")   $data['verfallsdatum']   = date('Y-m-d', time() + (int)$activeModules[$directory]['expire_time']*86400 ) . ' 23:59:59';

_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7

 
Für dieses Posting bedanken sich die folgenden User: Mr. Magpie
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neue Antwort erstellen    ConPresso4 Community Foren-Übersicht -> Modul Formular (Conpresso 4) Alle Zeiten sind GMT + 2 Stunden
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen