Random code generation added. This can be used for so-called cash-buster codes in...
[mailer.git] / inc / mysql-connect.php
index 6f2f6182a12a7f94a2e0f0dc9aa52922d2a9d808..cdde847e5d1f4f67b4fceb07ef058115d10f2535 100644 (file)
@@ -32,8 +32,7 @@
  ************************************************************************/
 
 // Some security stuff...
-if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
-{
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) {
        $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
        require($INC);
 }
@@ -49,6 +48,9 @@ require_once(PATH."inc/functions.php");  // Non-database functions
 require_once(PATH."inc/extensions.php");
 require_once(PATH."inc/language.php");
 
+// Load "databases" aka static arrays
+require_once(PATH."inc/databases.php");     // Several hard-coded databases (arrays, constants)
+
 // Check if the user setups his MySQL stuff...
 if ((empty($MySQL['login'])) && (!isBooleanConstantAndTrue('mxchange_installing')) && (!isset($_GET['installing'])) && (isBooleanConstantAndTrue('mxchange_installed'))) {
        // No login entered and outside installation mode
@@ -60,12 +62,11 @@ 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'])) && (warn_no_pass)) {
+} elseif ((!isBooleanConstantAndTrue('mxchange_installing')) && (!isset($_GET['installing'])) && (empty($MySQL['password'])) && (isBooleanConstantAndTrue('warn_no_pass'))) {
        // No database password entered!!!
        echo "<STRONG>".LANG_WARNING.":</STRONG> ".WARN_NULL_PASSWORD;
 }
 
-
 // Init configuration arrays
 $_CONFIG = array(
        'code_length' => 0
@@ -81,9 +82,6 @@ if ((!isBooleanConstantAndTrue('mxchange_installing')) && (isBooleanConstantAndT
        }
        $EXT_CSS_FILES = array();
 
-       // Load "databases" aka static arrays
-       require_once(PATH."inc/databases.php");     // Several hard-coded databases (arrays, constants)
-
        if ((!empty($MySQL['host'])) && (!empty($MySQL['login'])) && (!empty($MySQL['password'])) && (!empty($MySQL['dbase']))) {
                // Connect to DB
                global $link;
@@ -97,6 +95,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
+
                                // Load configuration stuff
                                $result = SQL_QUERY("SELECT pass_len, points_register, points_ref, least_cats, check_double_email, check_double_pass, admin_notify, url_tlock, test_text, max_tlength, test_subj, autosend_active, max_send, url_blacklist, auto_purge, auto_purge_active, last_update, unconfirmed, profile_lock, online_timeout, mad_timestamp, mad_count, profile_update, send_prof_update, resend_profile_update, code_length, patch_level, patch_ctime, guest_stats, ref_payout, activate_xchange, order_multi_page, display_refid, ip_timeout, allow_direct_pay, config
 FROM "._MYSQL_PREFIX."_config
@@ -105,7 +106,7 @@ LIMIT 1", __FILE__, __LINE__);
 
                                if (SQL_NUMROWS($result) == 1) {
                                        // Load data when previous SQL query did not fail
-                                       if (!$result) {
+                                       if (!is_resource($result)) {
                                                // Something went wrong
                                                ADD_FATAL(FATAL_CANNOT_LOAD_CONFIG);
                                                return;
@@ -117,11 +118,8 @@ LIMIT 1", __FILE__, __LINE__);
                                        // Initialize include-file-pool
                                        $INC_POOL = array();
 
-                                       // Load more include files
-                                       require_once(PATH."inc/mysql-manager.php"); // Functions which interact with the database
-
                                        // Run daily reset
-                                       if ((date("d", $_CONFIG['last_update']) != date("d", time()) || (DEBUG_MODE == true)) && (!isBooleanConstantAndTrue('mxchange_installing')) && (isBooleanConstantAndTrue('mxchange_installed')) && (isBooleanConstantAndTrue('admin_registered')) && (!isset($_GET['register'])) && ($CSS != 1)) {
+                                       if ((date("d", $_CONFIG['last_update']) != date("d", time()) || ((isBooleanConstantAndTrue('DEBUG_MODE')))) && (!isBooleanConstantAndTrue('mxchange_installing')) && (isBooleanConstantAndTrue('mxchange_installed')) && (isBooleanConstantAndTrue('admin_registered')) && (!isset($_GET['register'])) && ($CSS != 1)) {
                                                // Do daily things in external PHP file but only when script is completely setup
                                                $INC_POOL[] = PATH."inc/reset/reset_daily.php";
 
@@ -133,7 +131,7 @@ LIMIT 1", __FILE__, __LINE__);
                                        require_once(PATH."inc/load_extensions.php");
 
                                        // Loading patching system is required here...
-                                       require_once(PATH."inc/patch-system.php");      // Initialize patch system
+                                       require_once(PATH."inc/patch-system.php"); // Initialize patch system
 
                                        // Functions which are related to themes
                                        require_once(PATH."inc/theme-manager.php");
@@ -161,11 +159,8 @@ LIMIT 1", __FILE__, __LINE__);
                                        // Secure and validate user ID from cookie
                                        UPDATE_LOGIN_DATA();
 
-                                       // Get session ID
-                                       if (empty($_SESSION['PHPSESSID'])) $_SESSION['PHPSESSID'] = session_id();
-
                                        // Update online list
-                                       UPDATE_ONLINE_LIST($_SESSION['PHPSESSID'], $GLOBALS['module'], $GLOBALS['action'], $GLOBALS['what']);
+                                       UPDATE_ONLINE_LIST(get_session('PHPSESSID'), $GLOBALS['module'], $GLOBALS['action'], $GLOBALS['what']);
 
                                        // Load theme name
                                        $CurrTheme = GET_CURR_THEME();
@@ -194,16 +189,29 @@ LIMIT 1", __FILE__, __LINE__);
                                        $dummy = CHECK_MODULE($GLOBALS['module']);
                                        if ($dummy == "done") COUNT_MODULE($GLOBALS['module']);
                                        unset($dummy);
+
+                                       // Shall we activate the exchange?
                                        if ($_CONFIG['activate_xchange'] > 0) activateExchange();
                                } else {
                                        // If you will read following error message you probably need to contact me (webmaster@mxchange.org)
                                        // and download the sql-upgrades extension from my server. Please ask me which SQL file(s) you need to
                                        // import *BEFORE* you import them!
                                        ADD_FATAL(FATAL_CANNOT_LOAD_CONFIG);
+
+                                       // Reset link and db here, close database first
+                                       SQL_CLOSE($link, __FILE__, __LINE__);
+                                       $link = false; $db = false;
                                }
 
                                // Free memory
                                SQL_FREERESULT($result);
+
+                               // 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 {
                                // Wrong database?
                                ADD_FATAL(WRONG_DB_SELECTED);