FriendsOfREDAXO / project_manager

Bietet Unterstützung bei der Verwaltung und Überprüfung von REDAXO-Installationen.
MIT License
26 stars 2 forks source link

Problem mit Abruf vieler Redaxo4 Installationen #53

Closed iceman-fx closed 3 years ago

iceman-fx commented 3 years ago

Bei vielen Redaxo4 Installationen erhalte ich vom API-Aufruf nichts zurück.

Stattdessen liefert der Api-Aufruf folgende Fehler: Notice: Undefined variable: REX in /home/www/web148/html/redaxo/include/master.inc.php on line 19

Notice: Undefined index: HTDOCS_PATH in /home/www/web148/html/redaxo/include/master.inc.php on line 80

Notice: Undefined index: HTDOCS_PATH in /home/www/web148/html/redaxo/include/master.inc.php on line 81

Notice: Undefined index: HTDOCS_PATH in /home/www/web148/html/redaxo/include/master.inc.php on line 82

Notice: Undefined index: HTDOCS_PATH in /home/www/web148/html/redaxo/include/master.inc.php on line 83 {"php_version":"7.1.33","pm_version":"1.2.0-legacy","client_version":"1.0.4-legacy","status":1,"cms":"REDAXO","cms_version":"4.7.3","rex_version":"4.7.3","mysql_version":"10.1.47-MariaDB-0+deb9u1","update_article":"1610113283","update_media":"1610110648"}

PS: die $REX-Variable ist natürlich da und die Webseite korrekt aufrufbar (https://www.gss-spain.com/)

PPS: Ich habe auch noch alte Rex4, wo keine Fehler kommen, aber trotzdem nix angezeigt wird (z.B. https://www.sachsentreppen.de)

iceman-fx commented 3 years ago

Nachtrag: Das Array $REX und der Wert $REX['HTDOCS_PATH'] wird in dex index.php erstellt/gesetzt, um dann in der master.inc.php auf diesen zugreifen zu können.

In der redaxo4-Clientdatei des PM wird aber nur die Master direkt eingebunden, wodurch der Pfad nun fehlt. Und da der Server meiner Kunden die Fehler-Notices ausgibt, kann der ProjectManager nicht korrekt die Daten auswerten/einlesen.

rkemmere commented 3 years ago

Also das client Script bei REX 4 nutzt die Variablen gar nicht. D.h. das muss ein generelles Problem bei den REX4 Versionen sein. Bei uns sind noch ca. 30 REX 4 Versionen und keine hat solche Fehler. Schreib mich am Montag mal per Slack an.

iceman-fx commented 3 years ago

Wie gesagt, es liegt nicht an Redaxo, sondern an der Notice-Ausgabe.

Wenn Du ein error_reporting(E_ALL & ~E_NOTICE);
vor der Einbindung der Master.inc einfügst, geht es.

rkemmere commented 3 years ago

Ja, aber generell dann an der R4, denn das Script nutzt keine der Variablen. Oder an den PHP Einstellungen die mit PHP 7.1 mehr notices werfen - daher Server Einstellung.

rkemmere commented 3 years ago

Ansonsten probiere mal in der client.php eine global $REX; zu definieren

rkemmere commented 3 years ago

error_reporting(E_ALL & ~E_NOTICE); hab ich mal mit aufgenommen.

iceman-fx commented 3 years ago

Ist richtig. Dein Script braucht diese nicht. Aber die Master nutzt diese, weshalb dann die Notices kommen und Deinen Rückgabewert verfälschen.

Eine $Rex anlegen geht auch, ist aber mühsamer als über das Error_reporting, da dann auch alle anderen Includes wiederum auf diese Variable zugreift.

rkemmere commented 3 years ago

Dann mache ich das error_reporting(E_ALL & ~E_NOTICE); rein. R4 bekommt nicht mehr so viel Aufmerksamkeit ;)