Example #1
0
function __db_connect(&$link, $dbsettings)
{
    global $debug;
    if (!$link) {
        // TODO !!!!!! DEBUG -> error!!!!
        $link = mysql_connect($dbsettings['server'], $dbsettings['user'], $dbsettings['pass']) or $debug->error(__db_error(), 'DB Error - cannot connect to server');
        __db_query("/*!40101 SET NAMES 'utf8' */") or die('Error: ' . __db_error());
        mysql_select_db($dbsettings['name']) or $debug->error(__db_error(), 'DB error - cannot find DB on server');
        // mysql_query('SET SESSION TRANSACTION ISOLATION LEVEL ' . DB_MYSQL_TRANSACTION_REPEATABLE_READ . ';') or die('Error: ' . __db_error());
        __db_query('SET SESSION TRANSACTION ISOLATION LEVEL ' . DB_MYSQL_TRANSACTION_REPEATABLE_READ . ';') or die('Error: ' . __db_error());
        unset($dbsettings);
    }
    return true;
}
Example #2
0
     upd_do_query('COMMIT;', true);
     $new_version = 25;
 case 25:
     upd_log_version_update();
     upd_alter_table('rw', array("DROP COLUMN `a_zestrzelona`", "DROP INDEX `rid`", "ADD COLUMN `report_id` bigint(11) NOT NULL AUTO_INCREMENT FIRST", "ADD PRIMARY KEY (`report_id`)", "ADD INDEX `i_rid` (`rid`)"), !$update_tables['rw']['report_id']);
     upd_add_more_time();
     upd_create_table('logs_backup', "AS (SELECT * FROM {$config->db_prefix}logs);");
     upd_alter_table('logs', array("MODIFY COLUMN `log_id` INT(1)", "DROP PRIMARY KEY"), !$update_tables['logs']['log_timestamp']);
     upd_alter_table('logs', array("DROP COLUMN `log_id`", "ADD COLUMN `log_timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Human-readable record timestamp' FIRST", "ADD COLUMN `log_username` VARCHAR(64) NOT NULL DEFAULT '' COMMENT 'Username' AFTER `log_timestamp`", "MODIFY COLUMN `log_title` VARCHAR(64) NOT NULL DEFAULT 'Log entry' COMMENT 'Short description' AFTER `log_username`", "MODIFY COLUMN `log_page` VARCHAR(512) NOT NULL DEFAULT '' COMMENT 'Page that makes entry to log' AFTER `log_text`", "CHANGE COLUMN `log_type` `log_code` INT UNSIGNED NOT NULL DEFAULT 0 AFTER `log_page`", "MODIFY COLUMN `log_sender` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'User ID which make log record' AFTER `log_code`", "MODIFY COLUMN `log_time` INT(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Machine-readable timestamp' AFTER `log_sender`", "ADD COLUMN `log_dump` TEXT NOT NULL DEFAULT '' COMMENT 'Machine-readable dump of variables' AFTER `log_time`", "ADD INDEX `i_log_username` (`log_username`)", "ADD INDEX `i_log_time` (`log_time`)", "ADD INDEX `i_log_sender` (`log_sender`)", "ADD INDEX `i_log_code` (`log_code`)", "ADD INDEX `i_log_page` (`log_page`)", "CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci"), !$update_tables['logs']['log_timestamp']);
     upd_do_query('DELETE FROM `{{logs}}` WHERE `log_code` = 303;');
     if ($update_tables['errors']) {
         upd_do_query('INSERT INTO `{{logs}}` (`log_code`, `log_sender`, `log_title`, `log_text`, `log_page`, `log_time`) SELECT 500, `error_sender`, `error_type`, `error_text`, `error_page`, `error_time` FROM `{{errors}}`;');
         if ($update_tables['errors_backup']) {
             upd_drop_table('errors_backup');
         }
         __db_query("ALTER TABLE {$config->db_prefix}errors RENAME TO {$config->db_prefix}errors_backup;");
         upd_drop_table('errors');
     }
     upd_alter_table('logs', 'ORDER BY log_time');
     upd_alter_table('logs', array("ADD COLUMN `log_id` SERIAL", "ADD PRIMARY KEY (`log_id`)"), !$update_tables['logs']['log_id']);
     upd_do_query('UPDATE `{{logs}}` SET `log_timestamp` = FROM_UNIXTIME(`log_time`);');
     upd_do_query('UPDATE `{{logs}}` AS l LEFT JOIN `{{users}}` AS u ON u.id = l.log_sender SET l.log_username = u.username WHERE l.log_username IS NOT NULL;');
     upd_do_query("UPDATE `{{logs}}` SET `log_code` = 190 WHERE `log_code` = 100 AND `log_title` = 'Stat update';");
     upd_do_query("UPDATE `{{logs}}` SET `log_code` = 191 WHERE `log_code` = 101 AND `log_title` = 'Stat update';");
     upd_do_query("UPDATE `{{logs}}` SET `log_code` = 192 WHERE `log_code` = 102 AND `log_title` = 'Stat update';");
     $sys_log_disabled = false;
     upd_do_query('COMMIT;', true);
     $new_version = 26;
 case 26:
     upd_log_version_update();
     $sys_log_disabled = false;
Example #3
0
function upd_drop_table($table_name)
{
    global $config;
    __db_query("DROP TABLE IF EXISTS {$config->db_prefix}{$table_name};");
    upd_unset_table_info($table_name);
}
Example #4
0
 function warning($message, $title = 'System Message', $log_code = 300, $dump = false)
 {
     global $link, $user, $lang, $sys_log_disabled;
     require SN_ROOT_PHYSICAL . 'config.' . PHP_EX;
     if (!$link) {
         sn_db_connect();
         //      $link = mysql_connect($dbsettings['server'], $dbsettings['user'], $dbsettings['pass']);
         //      mysql_query('/*!40101 SET NAMES \'utf8\' */');
         //      mysql_select_db($dbsettings['name']);
     }
     $error_backtrace = $this->dump($dump, false);
     if (!$sys_log_disabled) {
         $query = "INSERT INTO `{{logs}}` SET\n        `log_time` = '" . time() . "', `log_code` = '" . db_escape($log_code) . "', `log_sender` = '" . db_escape($user['id']) . "',\n        `log_username` = '" . db_escape($user['user_name']) . "', `log_title` = '" . db_escape($title) . "',  `log_text` = '" . db_escape($message) . "',\n        `log_page` = '" . db_escape(strpos($_SERVER['SCRIPT_NAME'], SN_ROOT_RELATIVE) === false ? $_SERVER['SCRIPT_NAME'] : substr($_SERVER['SCRIPT_NAME'], strlen(SN_ROOT_RELATIVE))) . "'" . ($error_backtrace ? ", `log_dump` = '" . db_escape(serialize($error_backtrace)) . "'" : '') . ";";
         __db_query($query);
     } else {
         print "<hr>User ID {$user['id']} made log entry with code {$log_code} titled '{$title}' with text '{$message}' on page {$_SERVER['SCRIPT_NAME']}";
     }
 }
Example #5
0
function doquery($query, $table = '', $fetch = false, $skip_query_check = false)
{
    global $numqueries, $link, $debug, $sn_cache, $config, $db_prefix;
    if (!is_string($table)) {
        $fetch = $table;
    }
    if (!$link) {
        sn_db_connect();
    }
    $query = trim($query);
    security_watch_user_queries($query);
    $skip_query_check or security_query_check_bad_words($query);
    $sql = $query;
    if (strpos($sql, '{{') !== false) {
        foreach ($sn_cache->tables as $tableName) {
            $sql = str_replace("{{{$tableName}}}", $db_prefix . $tableName, $sql);
        }
    }
    if ($config->debug) {
        $numqueries++;
        $arr = debug_backtrace();
        $file = end(explode('/', $arr[0]['file']));
        $line = $arr[0]['line'];
        $debug->add("<tr><th>Query {$numqueries}: </th><th>{$query}</th><th>{$file}({$line})</th><th>{$table}</th><th>{$fetch}</th></tr>");
    }
    if (defined('DEBUG_SQL_COMMENT')) {
        $backtrace = debug_backtrace();
        $sql_comment = $debug->compact_backtrace($backtrace, defined('DEBUG_SQL_COMMENT_LONG'));
        //    pdump($backtrace[0]);
        //    pdump($backtrace[1]);
        //    print("<hr/>");
        //    foreach($backtrace as $a_trace)
        //    {
        //      if(!in_array($a_trace['function'], array('doquery', 'db_query', 'db_get_record_list'))) break;
        //    }
        //    // $a_trace = $backtrace[1]['function'] == 'db_query' ? $backtrace[2] : $backtrace[1];
        //    $function =
        //      ($a_trace['type']
        //        ? ($a_trace['type'] == '->'
        //          ? "({$a_trace['class']})" . get_class($a_trace['object'])
        //          : $a_trace['class']
        //        ) . $a_trace['type']
        //        : ''
        //      ) . $a_trace['function'] . '()';
        //
        //    $file = str_replace(SN_ROOT_PHYSICAL, '', str_replace('\\', '/', $a_trace['file']));
        //
        //    $transaction_id = classSupernova::db_transaction_check(false) ? classSupernova::$transaction_id : classSupernova::$transaction_id++;
        //
        //    $sql = "/* {$function} '{$file}' Line {$a_trace['line']} tID {$transaction_id} */ " . $sql;
        $sql_commented = '/* ' . implode("<br />", $sql_comment) . '<br /> */ ' . preg_replace("/\\s+/", ' ', $sql);
        if (defined('DEBUG_SQL_ONLINE')) {
            $debug->warning($sql_commented, 'SQL Debug', LOG_DEBUG_SQL);
        }
        if (defined('DEBUG_SQL_ERROR')) {
            array_unshift($sql_comment, preg_replace("/\\s+/", ' ', $sql));
            $debug->add_to_array($sql_comment);
            // $debug->add_to_array($sql_comment . preg_replace("/\s+/", ' ', $sql));
        }
        $sql = $sql_commented;
    }
    $sqlquery = __db_query($sql) or $debug->error(db_error() . "<br />{$sql}<br />", 'SQL Error');
    return $fetch ? db_fetch($sqlquery) : $sqlquery;
}