]> git.mxchange.org Git - mailer.git/blobdiff - inc/mysql-connect.php
Missing theme extension fixed in theme_edit/theme_import
[mailer.git] / inc / mysql-connect.php
index 57737072c9978234ead83b7e13da54fb5dcb692d..7bbaee5e1ea1b72aef8816547f227a8d55ab3b0b 100644 (file)
@@ -32,7 +32,7 @@
  ************************************************************************/
 
 // Some security stuff...
-if (ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) {
+if (!defined('__SECURITY')) {
        $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
        require($INC);
 }
@@ -49,11 +49,43 @@ require_once(PATH."inc/db/lib.php");
 
 // Load general functions
 require_once(PATH."inc/functions.php");  // Non-database functions
+
+// Load more include files
+require_once(PATH."inc/mysql-manager.php"); // Functions which interact with the database
+
+// Load extensions and language
 require_once(PATH."inc/extensions.php");
-require_once(PATH."inc/language.php");
+
+// Error handler function
+function __errorHandler ($errno, $errstr, $errfile, $errline) {
+       // Construct message
+       $msg = sprintf("errno=%s,errstr=%s,errfile=%s,errline=%s",
+               $errno,
+               $errstr,
+               basename($errfile),
+               $errline
+       );
+
+       // Write debug log message
+       DEBUG_LOG(__FUNCTION__.":".$msg, true);
+
+       // Output message to user and die
+       if (EXT_IS_ACTIVE("debug")) {
+               // Debug extension found! :-)
+               die("Error message written to debug.log. Please try to call <a href=\"".URL."\">the main page</a> to continue.");
+       } else {
+               // No debug extension found
+               print("Please report this error at <a href=\"http://forum.mxchange.org\" target=\"_blank\">forum.mxchange.org</a>:<pre>");
+               debug_print_backtrace();
+               die("</pre>Thanks for your help finding bugs.");
+       }
+}
+
+// Set error handler
+set_error_handler('__errorHandler');
 
 // Check if the user setups his MySQL stuff...
-if ((empty($MySQL['login'])) && (!isBooleanConstantAndTrue('mxchange_installing')) && (!isset($_GET['installing'])) && (isBooleanConstantAndTrue('mxchange_installed'))) {
+if ((empty($MySQL['login'])) && (!defined('mxchange_installing')) && (!isset($_GET['installing'])) && (isBooleanConstantAndTrue('mxchange_installed'))) {
        // No login entered and outside installation mode
        echo "<STRONG>".LANG_WARNING.":</STRONG> ";
        if (isBooleanConstantAndTrue('mxchange_installed')) {
@@ -63,7 +95,7 @@ if ((empty($MySQL['login'])) && (!isBooleanConstantAndTrue('mxchange_installing'
                // Please run the installation script (maybe again)
                die(DIE_RUN_INSTALL_MYSQL);
        }
-} elseif ((!isBooleanConstantAndTrue('mxchange_installing')) && (!isset($_GET['installing'])) && (empty($MySQL['password'])) && (isBooleanConstantAndTrue('warn_no_pass'))) {
+} elseif ((!defined('mxchange_installing')) && (!isset($_GET['installing'])) && (empty($MySQL['password'])) && (isBooleanConstantAndTrue('warn_no_pass'))) {
        // No database password entered!!!
        echo "<STRONG>".LANG_WARNING.":</STRONG> ".WARN_NULL_PASSWORD;
 }
@@ -72,10 +104,8 @@ if ((empty($MySQL['login'])) && (!isBooleanConstantAndTrue('mxchange_installing'
 if ((!isBooleanConstantAndTrue('mxchange_installing')) && (isBooleanConstantAndTrue('mxchange_installed'))) {
        // Check for write-permission for config.php and inc directory
        if (empty($GLOBALS['module'])) $GLOBALS['module'] = "index";
-       if (($GLOBALS['module'] != "admin") && (isBooleanConstantAndTrue('admin_registered')) && (!isset($_SERVER['WINDIR']))) {
-               if (is_INCWritable("config"))     ADD_FATAL(FATAL_CONFIG_WRITABLE);
-               if (is_INCWritable("dummy"))      ADD_FATAL(FATAL_INC_WRITABLE);
-       }
+
+       // CSS array
        $EXT_CSS_FILES = array();
 
        if ((!empty($MySQL['host'])) && (!empty($MySQL['login'])) && (!empty($MySQL['password'])) && (!empty($MySQL['dbase']))) {
@@ -91,8 +121,9 @@ if ((!isBooleanConstantAndTrue('mxchange_installing')) && (isBooleanConstantAndT
 
                        // Is it a valid resource?
                        if ($db === true) {
-                               // Load more include files
-                               require_once(PATH."inc/mysql-manager.php"); // Functions which interact with the database
+                               // Remove MySQL array from namespace
+                               define('__DB_NAME', $MySQL['dbase']);
+                               unset($MySQL);
 
                                // Load configuration stuff
                                $_CONFIG = LOAD_CONFIG();
@@ -117,6 +148,8 @@ if ((!isBooleanConstantAndTrue('mxchange_installing')) && (isBooleanConstantAndT
                                        // Administrative functions
                                        require_once(PATH."inc/modules/admin/admin-inc.php");
                                } // END - if
+                               //* DEBUG: */ ADD_POINTS_REFSYSTEM(36,1000);
+                               //* DEBUG: */ die();
 
                                // Get all values
                                if (($CSS != 1) && ($CSS != -1)) {
@@ -135,11 +168,8 @@ if ((!isBooleanConstantAndTrue('mxchange_installing')) && (isBooleanConstantAndT
                                // Update online list
                                UPDATE_ONLINE_LIST($PHPSESSID, $GLOBALS['module'], $GLOBALS['action'], $GLOBALS['what']);
 
-                               // Load theme name
-                               $currTheme = GET_CURR_THEME();
-
                                // Set default 'what' value
-                               //* DEBUG */ echo "-".$GLOBALS['module']."/".$GLOBALS['what']."-<br />\n";
+                               //* DEBUG: */ echo "-".$GLOBALS['module']."/".$GLOBALS['what']."-<br />\n";
                                if ((empty($GLOBALS['what'])) && (empty($GLOBALS['action'])) && ($CSS != 1) && ($CSS != -1)) {
                                        if ($GLOBALS['module'] == "admin") {
                                                // Set 'action' value to 'login' in admin menu
@@ -166,22 +196,37 @@ if ((!isBooleanConstantAndTrue('mxchange_installing')) && (isBooleanConstantAndT
                                // Shall we activate the exchange?
                                if ($_CONFIG['activate_xchange'] > 0) activateExchange();
 
-                               // Generate random number
-                               if (isset($GLOBALS['userid'])) {
-                                       define('RAND_NUMBER', GEN_RANDOM_CODE(10, mt_rand(10000,32766), $GLOBALS['userid'], ""));
+                               // Is the extension sql_patches installed and at least 0.3.6?
+                               if (GET_EXT_VERSION("sql_patches") >= "0.3.6") {
+                                       // Generate random number
+                                       if (isset($GLOBALS['userid'])) {
+                                               define('RAND_NUMBER', GEN_RANDOM_CODE(10, mt_rand(10000,32766), $GLOBALS['userid'], ""));
+                                       } else {
+                                               define('RAND_NUMBER', GEN_RANDOM_CODE(10, mt_rand(10000,32766), 0, ""));
+                                       }
                                } else {
-                                       define('RAND_NUMBER', GEN_RANDOM_CODE(10, mt_rand(10000,32766), 0, ""));
+                                       // Generate weak (!!!) code
+                                       define('RAND_NUMBER', mt_rand(1000000, 9999999));
                                }
                        } else {
+                               // Add language system
+                               include (PATH."inc/language.php");
+
                                // Wrong database?
                                ADD_FATAL(WRONG_DB_SELECTED);
                        }
                } else {
+                       // Add language system
+                       include (PATH."inc/language.php");
+
                        // No link to database!
                        ADD_FATAL(NO_DB_LINK);
                        $db = false;
                }
        } else {
+               // Add language system
+               include (PATH."inc/language.php");
+
                // Maybe you forgot to enter your MySQL data?
                ADD_FATAL(MYSQL_DATA_MISSING);
        }
@@ -207,7 +252,7 @@ if ((!isBooleanConstantAndTrue('mxchange_installing')) && (isBooleanConstantAndT
        if (($installPhp != "install.php") && ($CSS != "1") && ($CSS != -1)) {
                // Redirect to the installation system
                LOAD_URL("install.php");
-       }
+       } // END - if
 
        // Double-check installation mode
        if ((!isBooleanConstantAndTrue('mxchange_installed')) || (!isBooleanConstantAndTrue('admin_registered'))) {
@@ -221,12 +266,12 @@ if ((!isBooleanConstantAndTrue('mxchange_installing')) && (isBooleanConstantAndT
                if (!is_INCWritable(".secret/dummy")) {
                        ADD_FATAL(SECRET_IS_WRITE_PROTECTED);
                }
-       }
+       } // END - if
 }
 
 // Any fatal messages?
 if (!is_array($FATAL)) $FATAL = array();
-if (((sizeof($FATAL) > 0) || (!empty($FATAL[0]))) && (isBooleanConstantAndTrue('mxchange_installed')) && (!isBooleanConstantAndTrue('mxchange_installing')) && ($CSS != "1"))
+if (((sizeof($FATAL) > 0) || (!empty($FATAL[0]))) && (isBooleanConstantAndTrue('mxchange_installed')) && (!defined('mxchange_installing')) && ($CSS != "1"))
 {
        // One or more fatal error(s) occur during connect...
        include (PATH."inc/header.php");