- Surfbar further extended, currently broken!
[mailer.git] / inc / mysql-connect.php
index 600eae105304340a7a8d000062b7b800f14500f8..4020ecdc46b587d4eb4cc0e2701303521d7990e5 100644 (file)
@@ -49,9 +49,31 @@ 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");
 
+// Init error handler
+function __errorHandler ($errno, $errstr, $errfile, $errline) {
+       $msg = sprintf("errno=%s,errstr=%s,errfile=%s,errline=%s",
+               $errno,
+               $errstr,
+               basename($errfile),
+               $errline
+       );
+       DEBUG_LOG(__FUNCTION__.":".$msg, true);
+       print "Please report this error:<pre>";
+       debug_print_backtrace();
+       die("</pre>");
+}
+
+// Set error handler
+//set_error_handler('__errorHandler');
+
 // Check if the user setups his MySQL stuff...
 if ((empty($MySQL['login'])) && (!defined('mxchange_installing')) && (!isset($_GET['installing'])) && (isBooleanConstantAndTrue('mxchange_installed'))) {
        // No login entered and outside installation mode
@@ -69,13 +91,11 @@ if ((empty($MySQL['login'])) && (!defined('mxchange_installing')) && (!isset($_G
 }
 
 // Check if this file is writeable or read-only and warn the user
-if ((!defined('mxchange_installing')) && (isBooleanConstantAndTrue('mxchange_installed'))) {
+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 +111,8 @@ if ((!defined('mxchange_installing')) && (isBooleanConstantAndTrue('mxchange_ins
 
                        // 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
+                               unset($MySQL);
 
                                // Load configuration stuff
                                $_CONFIG = LOAD_CONFIG();
@@ -163,11 +183,17 @@ if ((!defined('mxchange_installing')) && (isBooleanConstantAndTrue('mxchange_ins
                                // 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 {
                                // Wrong database?
@@ -204,10 +230,10 @@ if ((!defined('mxchange_installing')) && (isBooleanConstantAndTrue('mxchange_ins
        if (($installPhp != "install.php") && ($CSS != "1") && ($CSS != -1)) {
                // Redirect to the installation system
                LOAD_URL("install.php");
-       }
+       } // END - if
 
        // Double-check installation mode
-       if ((!defined('mxchange_installed')) || (!defined('admin_registered'))) {
+       if ((!isBooleanConstantAndTrue('mxchange_installed')) || (!isBooleanConstantAndTrue('admin_registered'))) {
                // Check for file permissions
                if (!is_INCWritable("config")) {
                        ADD_FATAL(CONFIG_IS_WRITE_PROTECTED);
@@ -218,7 +244,7 @@ if ((!defined('mxchange_installing')) && (isBooleanConstantAndTrue('mxchange_ins
                if (!is_INCWritable(".secret/dummy")) {
                        ADD_FATAL(SECRET_IS_WRITE_PROTECTED);
                }
-       }
+       } // END - if
 }
 
 // Any fatal messages?