Neuigkeiten:

moziloCMS verwendet Cookies. Wenn Sie auf unserer Seite weitersurfen, stimmen Sie der Cookie-Nutzung zu Datenschutzerklärung
moziloCMS Layouts
moziloCMS Plugins

Hauptmenü

Teile von Fehlermeldungen unterdrücken

Begonnen von rolinux, 07. Dezember 2022, 10:11:36

« vorheriges - nächstes »

rolinux

Hallo,

wenn Fehler in einem Plugin oder in mozilo auftreten, wird ja u.U. der komplette Serverpfad der Fehlerursache ausgegeben. Kann man irgendwie verhindern, dass der Pfad oberhalb des mozilo-Installationsordners ausgegeben wird? Oder vlt. sogar den Installationsordner selber auch?
U.U. ist das ja auch ein Sicherheitsproblem...
Andere CMS wie bspw. Wordpress (damit habe ich jetzt auch schon etwas Erfahrung) geben dann gar nichts mehr aus, das Browserfenster bleibt leer, was allerdings auch nicht wirklich hilfreich ist, weil man dann ja den Fehler gar nicht sieht. Was bei mir immer gelinde Panik auslöst...  :-[

Gruß
Rolf
"Vergiss nie, dass die Musik viel zu wichtig ist,
um sie ganz den Profis zu überlassen."
(Robert Fulghum, amerikanischer Philosoph)

"Die Deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen.
Allerdings ist sie nicht Open Source, d.h. du sollst sie nicht verändern oder in veränderter Form veröffentlichen."
(Verfasser unbekannt)

marusti

Kannst du mal bitte ein Beispiel zeigen was genau du meinst?

rolinux

Hab leider grade kein Beispiel. Funktioniert grade alles tadellos...
Aber ich meine solche Meldungen, wo als Pfad sowas drinsteht: /var/xyz/abc/html/moziloverz/...
Dabei ist "moziloverz" das Installationsverzeichnis, und alles davor sollte meiner Meinung nach ausgeblendet werden (kann man ja mit "..." oder "xxx" ersetzen). Zumindest in der Anzeige. Vollständig kann man sowas ja in eine Protokolldatei schreiben, die man dann per FTP runterladen kann, wenn man was für den Hoster braucht.

Gruß
Rolf
"Vergiss nie, dass die Musik viel zu wichtig ist,
um sie ganz den Profis zu überlassen."
(Robert Fulghum, amerikanischer Philosoph)

"Die Deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen.
Allerdings ist sie nicht Open Source, d.h. du sollst sie nicht verändern oder in veränderter Form veröffentlichen."
(Verfasser unbekannt)

marusti

Um die Diskussion zum starten zu bringen.
Ohne es komplett durchgetestet zu haben, könnte man sowas in der Art in cms/DefaultFunc.php einfügen

function error_handler($errno, $errstr, $errfile, $errline) {
  if (!(error_reporting() & $errno)) {
    return false;
  }

  // Supported error types
  $php_error_types = [
    E_WARNING => 'E_WARNING',
    E_NOTICE => 'E_NOTICE',
    E_USER_ERROR => 'E_USER_ERROR',
    E_USER_WARNING => 'E_USER_WARNING',
    E_USER_NOTICE => 'E_USER_NOTICE',
    E_RECOVERABLE_ERROR => 'E_RECOVERABLE_ERROR',
    E_DEPRECATED => 'E_DEPRECATED',
    E_USER_DEPRECATED => 'E_USER_DEPRECATED',
    E_ALL => 'E_ALL'
  ];
 
  $error_content = '<div style="padding: 10px; color: red">';
  $error_content .= '<p><b>' . $php_error_types["$errno"] . '</b></p>';
  $error_content .= '<p> ' . $errstr . '</p>';
  $error_content .= '<p>The error occurred on line <b>' . $errline . '</b> in file: <b>'.dirname($_SERVER['PHP_SELF']).'/'.basename($errfile).'</b></p>';
  $error_content .= '</div>';

  echo $error_content;

  return true;
}

set_error_handler("error_handler");
Achtung: error_handler selbst kann nicht alle Fehlertypen behandeln, siehe hier https://www.php.net/manual/de/function.set-error-handler.php
ZitatDie folgenden Fehlertypen können nicht von einer benutzerdefinierten Funktion behandelt werden: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR und E_COMPILE_WARNING unabhängig davon, wo sie ausgelöst wurden, und die meisten E_STRICT, die in der Datei ausgelöst werden, in der set_error_handler() aufgerufen wird.

und der Test wäre zb PHP auf Version 8.2 umstellen und im Adminbereich einloggen