From b373260475c92f0e717a488f4e52196a946ef7d5 Mon Sep 17 00:00:00 2001 From: skodak Date: Mon, 7 Jul 2008 14:34:40 +0000 Subject: [PATCH] MDL-15413 warn admins if display_errors enabled --- admin/index.php | 4 ++++ admin/settings/server.php | 2 +- lang/en_utf8/admin.php | 1 + lib/setup.php | 4 ++++ lib/weblib.php | 2 +- 5 files changed, 11 insertions(+), 2 deletions(-) diff --git a/admin/index.php b/admin/index.php index b96d996456..7529d336eb 100644 --- a/admin/index.php +++ b/admin/index.php @@ -568,6 +568,10 @@ print_box(get_string('datarootsecuritywarning', 'admin', $CFG->dataroot), 'generalbox adminwarning'); } + if (defined('WARN_DISPLAY_ERRORS_ENABLED')) { + print_box(get_string('displayerrorswarning', 'admin'), 'generalbox adminwarning'); + } + if (substr($CFG->wwwroot, -1) == '/') { print_box(get_string('cfgwwwrootslashwarning', 'admin'), 'generalbox adminwarning'); } diff --git a/admin/settings/server.php b/admin/settings/server.php index 7e7b79901e..78e4cf8cad 100644 --- a/admin/settings/server.php +++ b/admin/settings/server.php @@ -102,7 +102,7 @@ $ADMIN->add('server', $temp); // "debugging" settingpage $temp = new admin_settingpage('debugging', get_string('debugging', 'admin')); $temp->add(new admin_setting_special_debug()); -$temp->add(new admin_setting_configcheckbox('debugdisplay', get_string('debugdisplay', 'admin'), get_string('configdebugdisplay', 'admin'), ini_get('display_errors'))); +$temp->add(new admin_setting_configcheckbox('debugdisplay', get_string('debugdisplay', 'admin'), get_string('configdebugdisplay', 'admin'), ini_get_bool('display_errors'))); $temp->add(new admin_setting_configcheckbox('xmlstrictheaders', get_string('xmlstrictheaders', 'admin'), get_string('configxmlstrictheaders', 'admin'), 0)); $temp->add(new admin_setting_configcheckbox('debugsmtp', get_string('debugsmtp', 'admin'), get_string('configdebugsmtp', 'admin'), 0)); $temp->add(new admin_setting_configcheckbox('perfdebug', get_string('perfdebug', 'admin'), get_string('configperfdebug', 'admin'), '7', '15', '7')); diff --git a/lang/en_utf8/admin.php b/lang/en_utf8/admin.php index 5c6d2056cc..e54da75843 100644 --- a/lang/en_utf8/admin.php +++ b/lang/en_utf8/admin.php @@ -302,6 +302,7 @@ $string['denyemailaddresses'] = 'Denied email domains'; $string['digestmailtime'] = 'Hour to send digest emails'; $string['disablecourseajax'] = 'Disable AJAX course editing'; $string['disableuserimages'] = 'Disable User Profile Images'; +$string['displayerrorswarning'] = 'Enabling the PHP setting display_errors is not recommended on production sites because some error messages may reveal sensitive information about your server.'; $string['displayloginfailures'] = 'Display login failures to'; $string['docroot'] = 'Moodle Docs document root'; $string['doctonewwindow'] = 'Open in new window'; diff --git a/lib/setup.php b/lib/setup.php index 87a2f6cbc7..d91003e135 100644 --- a/lib/setup.php +++ b/lib/setup.php @@ -215,6 +215,10 @@ global $HTTPSPAGEREQUIRED; error_reporting($CFG->debug); +/// find out if PHP cofigured to display warnings + if (ini_get_bool('display_errors')) { + define('WARN_DISPLAY_ERRORS_ENABLED', true); + } /// If we want to display Moodle errors, then try and set PHP errors to match if (!isset($CFG->debugdisplay)) { //keep it as is during installation diff --git a/lib/weblib.php b/lib/weblib.php index b18a71bf16..c5df242fe6 100644 --- a/lib/weblib.php +++ b/lib/weblib.php @@ -6910,7 +6910,7 @@ function debugging($message='', $level=DEBUG_NORMAL, $backtrace=null) { } $from = print_backtrace($backtrace, true); if (!isset($CFG->debugdisplay)) { - $CFG->debugdisplay = ini_get('display_errors'); + $CFG->debugdisplay = ini_get_bool('display_errors'); } if ($CFG->debugdisplay) { if (!defined('DEBUGGING_PRINTED')) { -- 2.39.5