Seite 1 von 2

[#443] function cDeprecated * ergänzung

Verfasst: Do 8. Feb 2024, 09:14
von emergence
contenido\includes\functions.general.php

hmm... etwas aussage kräftigere fehlermeldung kann nicht schaden... zb bei welcher url der fehler aufgetreten ist...

nach

Code: Alles auswählen

    $msg = "Deprecated call: " . $function_name . "() [" . basename($stack[0]['file']) . "(" . $stack[0]['line'] . ")]: ";
    if ($message != '') {
        $msg .= "\"" . $message . "\"" . "\n";
    } else {
        $msg .= "\n";
    }
folgendes ergänzen...

Code: Alles auswählen

    $msg .= ($_SERVER['SERVER_PORT'] == '443' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']."\n";

Re: function cDeprecated * ergänzung

Verfasst: Do 8. Feb 2024, 12:00
von Faar
All die schönen Posts hätten auch noch in github geschrieben werden können :roll:
https://github.com/CONTENIDO/CONTENIDO/issues
Oder gleich als Pullrequest fertig gestellt 8)

Re: function cDeprecated * ergänzung

Verfasst: Do 8. Feb 2024, 12:24
von emergence
hatte noch nie zeit mich mit github zu spielen...

Re: function cDeprecated * ergänzung

Verfasst: Do 8. Feb 2024, 16:27
von Faar
emergence hat geschrieben:
Do 8. Feb 2024, 12:24
hatte noch nie zeit mich mit github zu spielen...
Manche arbeiten damit.

Re: function cDeprecated * ergänzung

Verfasst: Fr 9. Feb 2024, 13:57
von McHubi
Also von meiner Seite aus einfach mal ein "Danke" an emergence. :wink:

Re: function cDeprecated * ergänzung

Verfasst: Sa 10. Feb 2024, 09:51
von Faar
McHubi hat geschrieben:
Fr 9. Feb 2024, 13:57
Also von meiner Seite aus einfach mal ein "Danke" an emergence. :wink:
Ja, kann man schon sagen.

Re: function cDeprecated * ergänzung

Verfasst: So 11. Feb 2024, 10:40
von xmurrix
Danke, das ist eine gute Idee. Danke auch dir Faar, für das Anlegen des Tickets in GitHub.

Wir sollten das aber auch gleich in cWarning(), cError() und cLogError() machen, damit alle einheitliche Logeinträge erstellen.
Auch sollte man nicht auf gewisse $_SERVER Indizes zugreifen, ohne vorher zu prüfen, ob sie existieren.

Im CLI-Kontext gibt es z. B. keine $_SERVER['HTTP_HOST'] oder $_SERVER['REQUEST_URI'].

Allerdings sehe ich das nicht als einen Fehler, sondern eher als eine Ertweiterung.

Re: [#443] function cDeprecated * ergänzung

Verfasst: So 11. Feb 2024, 19:42
von emergence
CLI kontext verwende ich nicht...

dann vorher einfachen einen check ob die variable existiert...
=> isRunningFromWeb() verwenden...

Re: function cDeprecated * ergänzung

Verfasst: Mo 12. Feb 2024, 11:17
von Faar
xmurrix hat geschrieben:
So 11. Feb 2024, 10:40
Danke auch dir Faar, für das Anlegen des Tickets in GitHub.
Hab gerade eine ordentlich Erkältung, danach geht vielleicht mehr.

Re: [#443] function cDeprecated * ergänzung

Verfasst: Mo 12. Feb 2024, 13:47
von Oldperl
Servus,

erst mal danke @emergence :D
Schön Dich wieder mal durch's Forum fegen zu sehen.

ja, die Meldungen gehören überarbeitet. Wobei ich mir die Frage stelle, warum wir dort nicht gleich auf das vorhandene Fehlersystem von PHP aufsetzen, sondern ein "eigenes Süppchen" mit direktem Eintrag ins Errorlog kochen?

Gibt es dafür einen Grund?

Man könnte doch die Fehlermeldung auch per Error-Handler übergeben, oder? :arrow: https://www.php.net/manual/de/function. ... andler.php
So kann man dann die Fehlermeldungen auch per PHP-Einstellungen abschalten, was gerade im produktiven Betrieb dafür sorgt, dass das Errorlog nicht unnötig gefüllt wird.

Gruß aus Franken

Ortwin

Re: [#443] function cDeprecated * ergänzung

Verfasst: Mo 12. Feb 2024, 17:03
von emergence
wie gesagt das war als ergänzung/erweiterung zu sehen...

grundsätzlich
der vorschlag das zu normen und via error_handler zu machen, ist eine gute idee...

mir gings hauptsächlich darum, die fehler des mandanten leichter fixen zu können...
zb ich benötige fast immer die info bei welcher url trat das problem auf... und das macht einfach sinn...

btw. wo ist das $cfg setting für 'cache' 'path' versteckt... ?

Re: [#443] function cDeprecated * ergänzung

Verfasst: Mo 12. Feb 2024, 17:24
von Oldperl
emergence hat geschrieben:
Mo 12. Feb 2024, 17:03
btw. wo ist das $cfg setting für 'cache' 'path' versteckt... ?
Für das Backend dort in der $cfg und für das jeweilige Frontend in der $cfgClient

Gruß aus Franken

Ortwin

Re: [#443] function cDeprecated * ergänzung

Verfasst: Mo 12. Feb 2024, 17:56
von emergence
ähm, bezieht sich auf classes/class.session.php

Code: Alles auswählen

$path = parse_url($url, PHP_URL_PATH);
$path = cRegistry::getConfigValue('cookie', 'path', $path);
das ist dort so definiert...
in den config.misc.php oder config.php ist nix vorgesehen wo man es per default platzieren sollte/könnte...
hätte man da eine zb auskommentierte position, wüsste man wo man es platzieren müsste...

ich fange persönlich nix damit an, dass der cookie path /contenido/ ist und nicht /
durch das setting muss ich die class.session.php nicht modifizieren...

Re: [#443] function cDeprecated * ergänzung

Verfasst: Di 13. Feb 2024, 12:11
von Oldperl
Ok, also es gibt keinen $cfg-Value mit dem Namen 'cookie', weder als Einzelwert noch als Array.

An besagter Stelle geht es da aber auch nicht um einen vorkonfigurierten Wert, sondern um die Möglichkeit den Cookie-Pfad manuell setzen zu können. Normalerweise wird der Wert über parse_url ermittelt, und als Default-Wert bei getConfigValue gesetzt.
Irgendwo habe ich mal gelesen, dass es damit Probleme geben könnte, und deshalb wurde meines Wissens diese Möglichkeit den Pfad per $cfg-Variable fest zu setzen eingebaut.

Und es geht hier eben auch nicht nur um den Wert im Backend, sondern auch den jeweiligen Wert in den Frontends, je nachdem welche $url 2 Zeilen vorher genommen wird. Diese kann ich dann, wenn gewünscht, für jedes Frontend gesondert über den Eintrag in eine config.local.php ändern.

Gruß aus Franken

Ortwin

Re: [#443] function cDeprecated * ergänzung

Verfasst: Di 13. Feb 2024, 15:22
von xmurrix
...in den config.misc.php oder config.php ist nix vorgesehen wo man es per default platzieren sollte/könnte...
hätte man da eine zb auskommentierte position, wüsste man wo man es platzieren müsste...
Der Cookie-Pfad wird im Backend auf '/contenido/' und im Frontend auf '/cms/' (oder '/{mandanten_ordner_name}/') gesetzt.
Hat man aber Clean-URLs im Frontend, funktioniert das nicht, daher gibt es seit dem 05.03.2019 die Änderung in der cSession, mit der man über eine Konfiguration `$cfg['cookie']['path']` den Wert setzen kann, z. B. auf '/'.

Die Information zur `$cfg['cookie']['path']` ist auch in der `class.session.php` als Kommentar angegeben. Natürlich kann man das auch in die `config.misc.php` übernehmen, damit auch jeder es gleich findet. Allerdings muss man dann sicherheitshalter extra darauf hinweisen, dass diese Änderung nicht in die `config.misc.php`gehört, sondern in die `<CLIENT>/data/config/<ENV>/config.local.php`. Vermutlich hat man es deshalb nicht in die `config.misc.php` reingenommen, weil das da nichts zu suchen hat.