diff --git a/classes/db/DB.class.php b/classes/db/DB.class.php index 2d0a3e6af..244f73f1d 100644 --- a/classes/db/DB.class.php +++ b/classes/db/DB.class.php @@ -122,7 +122,8 @@ class DB } if(!$db_type && Context::isInstalled()) { - return new BaseObject(-1, 'msg_db_not_setted'); + Rhymix\Framework\Debug::displayError(lang('msg_db_not_setted')); + exit; } if(!strncmp($db_type, 'mysql', 5)) { @@ -139,7 +140,8 @@ class DB $class_file = RX_BASEDIR . "classes/db/$class_name.class.php"; if(!file_exists($class_file)) { - return new BaseObject(-1, 'msg_db_not_setted'); + Rhymix\Framework\Debug::displayError(sprintf('DB type "%s" is not supported.', $db_type)); + exit; } // get a singletone instance of the database driver class diff --git a/classes/db/DBMysql.class.php b/classes/db/DBMysql.class.php index 626ef95be..ac6a978a6 100644 --- a/classes/db/DBMysql.class.php +++ b/classes/db/DBMysql.class.php @@ -73,16 +73,16 @@ class DBMySQL extends DB // Check connection error if($mysqli->connect_errno) { - $this->setError($mysqli->connect_errno, $mysqli->connect_error); - return; + Rhymix\Framework\Debug::displayError(sprintf('DB ERROR %d : %s', $mysqli->connect_errno, $mysqli->connect_error)); + exit; } // Check DB version $this->db_version = $mysqli->server_info; if (version_compare($this->db_version, '5.0.7', '<')) { - $this->setError(-1, 'Rhymix requires MySQL 5.0.7 or later. Current MySQL version is ' . $this->db_version); - return; + Rhymix\Framework\Debug::displayError('Rhymix requires MySQL 5.0.7 or later. Current MySQL version is ' . $this->db_version); + exit; } // Set DB charset diff --git a/common/framework/debug.php b/common/framework/debug.php index b908c85ba..f9ce31076 100644 --- a/common/framework/debug.php +++ b/common/framework/debug.php @@ -650,7 +650,7 @@ class Debug } // Localize the error message. - $display_error_message = ini_get('display_errors') || Session::isAdmin(); + $display_error_message = ini_get('display_errors') || !\Context::isInstalled() || Session::isAdmin(); $message = $display_error_message ? $message : lang('msg_server_error_see_log'); if ($message === 'msg_server_error_see_log') { @@ -664,17 +664,28 @@ class Debug } catch (\Error $e) { - header('HTTP/1.1 500 Internal Server Error'); - if ($_SERVER['REQUEST_METHOD'] === 'GET' || !isset($_SERVER['HTTP_X_REQUESTED_WITH'])) - { - header('Content-Type: text/html; charset=UTF-8'); - echo sprintf('%s%s', escape($title, false), escape($message, false)); - } - else - { - header('Content-Type: application/json; charset=UTF-8'); - echo json_encode(array('error' => -1, 'message' => escape($message, false)), \JSON_UNESCAPED_UNICODE); - } + self::displayError($message); + } + } + + /** + * Display a default error. + * + * @param string $message + * @return void + */ + public static function displayError($message) + { + header('HTTP/1.1 500 Internal Server Error'); + if ($_SERVER['REQUEST_METHOD'] === 'GET' || !isset($_SERVER['HTTP_X_REQUESTED_WITH'])) + { + header('Content-Type: text/html; charset=UTF-8'); + echo sprintf('Server Error%s', escape($message, false)); + } + else + { + header('Content-Type: application/json; charset=UTF-8'); + echo json_encode(array('error' => -1, 'message' => escape($message, false)), \JSON_UNESCAPED_UNICODE); } }