Example #1
0
function showDebugInfo()
{
    if (!is_devel()) {
        return;
    }
    require_once common_class('sql_highlighter');
    global $engine_errors, $sql_queries, $sql_errors, $timers;
    $high = new TSqlHighlighter();
    $time_sum = 0;
    if (!empty($sql_queries)) {
        foreach ($sql_queries as $k => $v) {
            $time_sum += $v['time'];
            $sql_queries[$k]['sql'] = $high->highlight($v['sql']);
        }
    }
    if (!empty($sql_errors)) {
        foreach ($sql_errors as $k => $v) {
            $sql_errors[$k]['sql'] = $high->highlight($v['sql']);
        }
    }
    $tpl =& Registry::get('TRusoft_View');
    $tpl->template_dir = find_dir("../templates");
    $ret = array('timers' => $timers, 'sql' => array('count' => count($sql_queries), 'time' => $time_sum), 'engine_errors' => $engine_errors, 'sql_queries' => $sql_queries, 'sql_errors' => $sql_errors);
    $tpl->assign($ret);
    return $tpl->render($tpl->template_dir . 'debug.tpl');
}
Example #2
0
 function Cache()
 {
     //if (CACHE_DATA === true){
     require_once common_class('cache/data_cache');
     //подключем alias
     require_once common_lib('data_cache');
     //	}
     //if (CACHE_PAGE === true){
     require_once common_class('cache/page_cache');
     //подключем alias
     //require_once(common_lib('page_cache'));
     //}
     //if (CACHE_BLOCKS === true){
     require_once common_class('cache/block_cache');
     //подключем alias
     //require_once(common_lib('block_cache'));
     //}
 }
Example #3
0
    function Edit()
    {
        set_time_limit(0);
        /**
        * Алгоритм обработки:
                    - считываем все данные из таблицы stat_temp_log и идем по ним построчно
                    - вносим данные в глобальные таблицы (алгоритм, как раньше)
                    - удаляем строку
                    - в конце удаляем временные таблицы (наверное, которые по дате не совпадают, можно оставить)
        */
        include_once common_class('stat');
        $stat =& Registry::get('TStatClass');
        $sessions = $updates = $times = array();
        $columns = sql_getRows('SHOW COLUMNS FROM ' . STAT_SESSIONS_TABLE, true);
        if (!isset($columns['host'])) {
            sql_query("ALTER TABLE " . STAT_SESSIONS_TABLE . " ADD `host` VARCHAR( 255 ) NOT NULL ;");
            sql_query("UPDATE " . STAT_SESSIONS_TABLE . " SET host=(SELECT p.host FROM " . STAT_PAGES_TABLE . " AS p, " . STAT_LOG_TABLE . " AS log WHERE log.page_id=p.id AND log.sess_id=sess_id LIMIT 1)");
        }
        $total = sql_getValue("SELECT COUNT(*) FROM " . STAT_TEMP_TABLE);
        $i = 0;
        //ob_end_clean();
        ob_end_clean();
        header('Content-Encoding: text/html');
        while (1) {
            $rows = sql_getRows("SELECT * FROM " . STAT_TEMP_TABLE . " ORDER BY time LIMIT 1000");
            if ($i > 1 && (!$rows || count($rows) < 1000)) {
                break;
            }
            foreach ($rows as $key => $row) {
                $_key_ = md5($row['sess_id'] . '_' . $row['ip'] . '_' . $row['agent'] . '_' . $row['host']);
                $new = false;
                if (is_numeric($row['sess_id']) && strlen($row['sess_id']) != 32 && $row['sess_id'] != '0') {
                    // Реальный ID сессии
                    $sess_id = $row['sess_id'];
                } else {
                    if (isset($sessions[$_key_]) && isset($times[$_key_]) && $row['time'] - $times[$_key_] <= STAT_SESS_TIME * 60) {
                        // Ранее определили реальный ID и он не устарел еще
                        $sess_id = $sessions[$_key_];
                    } else {
                        // Во всех остальных случаях пытаемся найти подходящую сессию и если не находим - делаем новую сессию
                        list($agent_id, $robot) = $stat->STAT_GetAgentId($row['agent']);
                        $sess_id = sql_getValue("\n            \t        SELECT sess_id FROM " . STAT_SESSIONS_TABLE . "\n            \t        WHERE\n            \t           ip='{$row['ip']}' AND\n            \t           agent_id='{$agent_id}' AND\n            \t           host='{$row['host']}' AND\n            \t           time_last >= " . ($row['time'] - STAT_SESS_TIME * 60) . "\n            \t        LIMIT 1\n            \t        ");
                        if (!$sess_id) {
                            $sess_row = sql_getRow("SELECT sess_id, time_last FROM " . STAT_SESSIONS_TABLE . " WHERE ip='{$row['ip']}' AND agent_id='{$agent_id}' AND host='{$row['host']}' ORDER BY time_last DESC LIMIT 1");
                            $sess_id = $stat->newSession($row['ip'], $agent_id, $row['time'], $row['host'], $sess_row);
                            if (!$sess_id) {
                                return $this->Error(mysql_escape_string($sess_id));
                            }
                            $new = true;
                        }
                    }
                }
                if (!isset($robot) || !$robot) {
                    $sessions[$_key_] = $sess_id;
                    $times[$_key_] = $row['time'];
                }
                list($page_id, $ref_id) = $stat->updateLog($sess_id, $row['time'], $row['document_status'], $row['host'], $row['uri'], $row['referer'], !$new);
                if (!$page_id) {
                    return $this->Error('unknown page_id');
                }
                $res = $stat->updateSession($sess_id, $row['time'], $row['document_status'], $row['client_id'], $page_id, $ref_id, $row['ip'], $new, $row['agent']);
                if ($res !== true) {
                    return $this->Error(mysql_escape_string($res));
                }
                sql_delete(STAT_TEMP_TABLE, $row['id']);
                if ($key % 10 == 0) {
                    echo "<script>parent.process_log2.innerHTML += '.';</script>\n\n\n\n\n\n\n\n                    \r\n";
                    flush();
                }
            }
            $i += count($rows);
            unset($rows, $row);
            echo "<script>parent.process_log.innerHTML = 'Done " . intval($i / $total * 100) . "%';</script>\n\n\n\n\n\n\n\n            \r\n";
            echo "<script>parent.process_log2.innerHTML = '';</script>\n\n\n\n\n\n\n\n            \r\n";
            flush();
        }
        $sql = '
	       SELECT
           CONCAT(
                  "DROP TABLE ",
                   GROUP_CONCAT("`' . STAT_TMP_DB . '`.`", TABLE_NAME, "`")
           ) AS stmt
           FROM information_schema.TABLES
           WHERE TABLE_SCHEMA = "' . STAT_TMP_DB . '" AND TABLE_NAME LIKE "' . MYSQL_DB . '\\_%"';
        $query = sql_getValue($sql);
        if ($query) {
            sql_query($query);
        }
        return "<script>window.parent.location.href = 'cnt.php?page=stat/stat_process';</script>";
    }
Example #4
0
    define('ENGINE_TYPE', 'admin');
}
if (!defined('ENGINE_OS')) {
    define('ENGINE_OS', PHP_OS == 'WINNT' ? false : true);
}
// Подключение Zend
$zend_dir = array(dirname(__FILE__), 'common', 'classes');
set_include_path(get_include_path() . PATH_SEPARATOR . implode(DIRECTORY_SEPARATOR, $zend_dir));
//подгружаем дополнительный массив настроек
require_once ENGINE_VERSION . '/cfg/admin.cfg.php';
/* устанавливается document_status */
$GLOBALS['document_status'] = 200;
require_once PATH_COMMON_LIBS . 'error.lib.php';
require_once PATH_COMMON_LIBS . 'path.lib.php';
//подключаем класс реестра объектов
include_once common_class('registry.php5');
/* устанавливает соединение с базой данных */
// @todo нормальный обработчик ошибок при коннекте к БД
(require_once DB_CONNECT) or log_error('Cannot find file "' . DB_CONNECT . '"to connect to DB');
@mysql_connect(MYSQL_HOST, MYSQL_LOGIN, MYSQL_PASSWORD) or die(mysql_error());
@mysql_select_db(MYSQL_DB) or die(mysql_error());
@mysql_query("SET NAMES \"" . DB_SET_NAMES . "\"");
/* подключаем встроенный дебаггер */
require_once common_lib('debug');
timer_start('all');
//подключаем вывод страницы в gz
require_once common_lib('cache');
ob_start('cache_handler');
/* подключается библиотека функций */
require_once common_lib('utils');
/* подгружаем контроллер, инициализирующий общие классы, для сайта и админки */
Example #5
0
// @todo нормальный обработчик ошибок при коннекте к БД
(require_once DB_CONNECT) or log_error('Cannot find file "' . DB_CONNECT . '"to connect to DB');
@mysql_connect($mysql_host, $mysql_login, $mysql_password) or die(mysql_error());
@mysql_select_db($mysql_db) or die(mysql_error());
@mysql_query("SET NAMES \"" . DB_SET_NAMES . "\"");
/* подключаем встроенный дебаггер */
require_once common_lib('debug');
timer_start('all');
//подключаем вывод страницы в gz
require_once common_lib('cache');
ob_start('cache_handler');
/* подключается библиотека функций */
require_once common_lib('utils');
/* подгружаем контроллер, инициализирующий общие классы, для сайта и админки */
require_once common('main.init');
$main =& Registry::get('TMainInit');
require_once PATH_CONFIG . 'settings.cfg.php';
require_once PATH_CONFIG . 'lang.cfg.php';
/* Определение глобальных переменных */
require_once cfg('common');
if (strpos($_SERVER['REQUEST_URI'], '/hybridauth') !== false) {
    // Если пытаются открыть такой скрипт, значит надо его открыть - это скрипт авторизации через соц. сети
    include_once 'hybridauth/index.php';
    die;
}
// Класс для работы со статистикой
include_once common_class('stat');
require core('init');
timer_end('all');
echo showDebugInfo();
ob_end_flush();