- <?
- // Обзор диагностики системы SHCMS Engine
-
- switch($act):
- //По умолчанию получаем данные ниже
- default:
-
- echo '<div class="mainname">'.Lang::__('Диагностика').'</div>';
- echo '<div class="mainpost">';
- echo '<div class="subpost"><img src="../icons/support/info.png"> <a href="index.php?do=diagnostic&act=info">'.Lang::__('Системный обзор').'</a></div>';
- echo '</div>';
- echo engine::home(array(Lang::__('Назад'),'index.php'));
- break;
-
- //Подробная информация
- case 'info':
- //Получаем счетчик всех пользователей
- $r_user = $db->get_array($db->query("SELECT COUNT(*) FROM `users`"));
- //Получаем счетчик авторизованных
- $online = $db->get_array($db->query('SELECT COUNT(*) FROM `users` WHERE `lastdate` > '.(time()-600).''));
-
- //Вывод статистики необходимой
- echo '<div class="mainname">'.Lang::__('Статистика').'</div>';
- echo '<div class="mainpost">';
- echo '<b>'.Lang::__('Пользователей').':</b> '.engine::number($r_user[0]).'<br/>';
- echo '<div class="desc">'.Lang::__('В сети').':</b> <a style="color: #3287c9;" href="/modules/all_users.php?do=online_user">'.Lang::__('Просмотр').'</a> ('.engine::number($online[0]).')</div>';
- echo '<hr/>';
-
- $topic = $db->get_array($db->query("SELECT COUNT(*) FROM `forum_topics`"));
- $topic_close = $db->get_array($db->query("SELECT COUNT(*) FROM `forum_topics` WHERE `close` = '2'"));
- $topic_open = $db->get_array($db->query("SELECT COUNT(*) FROM `forum_topics` WHERE `close` = '1'"));
-
- echo '<b>'.Lang::__('Тем').': </b>'.engine::number($topic[0]).'<br/>';
- echo '<div class="desc">'.Lang::__('Закрытые темы').':</b> '.engine::number($topic_close[0]).'</div>';
- echo '<div class="desc">'.Lang::__('Открытые темы').':</b> '.engine::number($topic_open[0]).'</div>';
- echo '<hr/>';
-
- $message = $db->get_array($db->query("SELECT COUNT(*) FROM `messaging`"));
- $message_topic = $db->get_array($db->query("SELECT COUNT(*) FROM `messaging_topics`"));
-
- echo '<b>'.Lang::__('Сообщений').': </b>'.engine::number($message[0]).'<br/>';
- echo '<div class="desc">'.Lang::__('Тем создано').':</b> '.engine::number($message_topic[0]).'</div>';
- echo '</div>';
-
- //Выводим полную системную информацию
- echo '<div class="mainname">'.Lang::__('Системная информация').'</div>';
- echo '<div class="mainpost">';
-
- $extensions = get_loaded_extensions();
- $extensions = array_combine( $extensions, $extensions );
- sort( $extensions, SORT_STRING );
- $extension = str_replace( "suhosin", "<strong>suhosin</strong>", implode( ", ", $extensions ) );
-
- $server_software = @php_uname();
- //материал сервера
- $total_memory = '<font color="red">'.Lang::__('Не выведена').'</font>';
- $avail_memory = '<font color="red">'.Lang::__('Не выведена').'</font>';
-
- $_disabled = @ini_get('disable_functions') ? explode( ',', @ini_get('disable_functions') ) : array();
- $_shellExecAvail = in_array( 'shell_exec', $_disabled ) ? false : true;
-
- if( $_shellExecAvail ) {
- if( strpos( strtolower( PHP_OS ), 'win' ) === 0 ) {
- $tasks = @shell_exec( "tasklist" );
- $tasks = str_replace( " ", " ", $tasks );
- $tasks = mb_convert_encoding($tasks, 'utf-8', 'CP866');
- }
- else if( strtolower( PHP_OS ) == 'darwin' ) {
- $tasks = @shell_exec( "top -l 1" );
- $tasks = str_replace( " ", " ", $tasks );
- }
- else {
- $tasks = @shell_exec( "top -b -n 1" );
- $tasks = str_replace( " ", " ", $tasks );
- }
- }
- else {
- $tasks = '';
- }
-
- if( !$tasks ) {
- $tasks = Lang::__('Ошибки при получение информации');
- }
- else {
- $tasks = "<pre>".$tasks."</pre>";
- }
-
-
- if( strpos( strtolower( PHP_OS ), 'win' ) === 0 ){
- $mem = $_shellExecAvail ? @shell_exec('systeminfo') : null;
-
- if( $mem ) {
- $server_reply = explode( "\n", str_replace( "\r", "", $mem ) );
-
- if( count($server_reply) ) {
- foreach( $server_reply as $info ) {
-
- if( strstr( $info, Lang::__('Всего физической памяти')) ) {
- $total_memory = trim( str_replace( ":", "", strrchr( $info, ":" ) ) );
- }
-
- if( strstr( $info, Lang::__('Доступно физической памяти')) ) {
- $avail_memory = trim( str_replace( ":", "", strrchr( $info, ":" ) ) );
- }
- }
- }
- }
- }
- else {
- $mem = $_shellExecAvail ? @shell_exec("free -m") : null;
-
- if( $mem ) {
- $server_reply = explode( "\n", str_replace( "\r", "", $mem ) );
- $mem = array_slice( $server_reply, 1, 1 );
- $mem = preg_split( "#\s+#", $mem[0] );
-
- $total_memory = ( $mem[1] ) ? $mem[1] . ' MB' : '--';
- $avail_memory = ( $mem[3] ) ? $mem[3] . ' MB' : '--';
- }
- else {
- $total_memory = '--';
- $avail_memory = '--';
- }
- }
-
- //Выводим таблицу со всеми данными
- echo '<table class="STable">
- <tbody>
- <tr>
- <td class="field_title"><strong class="title">'.Lang::__('Версия SHCMS Engine').'</strong></td>
- <td class="field_field">v '.$sversion->ShortVersion().' (Build: #'.$sversion->BuildVersion().')</td>
- </tr>
- <tr>
- <td class="field_title"><strong class="title">'.Lang::__('Статус развития').'</strong></td>
- <td class="field_field">'.$sversion->StatusVersion().'</td>
- </tr>
- <tr>
- <td class="field_title"><strong class="title">'.Lang::__('Основатель системы').'</strong></td>
- <td class="field_field">'.$sversion->AuthorVersion().'</td>
- </tr>
- <tr>
- <td class="field_title"><strong class="title">'.Lang::__('MYSQLI Версия').'</strong></td>
- <td class="field_field">'.mysqli_get_client_info().'</td>
- </tr>
- <tr>
- <td class="field_title"><strong class="title">'.Lang::__('PHP Версия').'</strong></td>
- <td class="field_field">'.PHP_VERSION.'</td>
- </tr>
- <tr>
- <td class="field_title"><strong class="title">'.Lang::__('Отключенные PHP функции').'</strong></td>
- <td class="field_field"><a href="index.php?do=diagnostic&act=php_function">'.Lang::__('Просмотр').'</a></td>
- </tr>
-
- <tr>
- <td class="field_title"><strong class="title">'.Lang::__('Загруженные расширение').'</strong></td>
- <td class="field_field">'.$extension.'</td>
- </tr>
- </tbody>
- </table>';
-
- echo '</div>';
-
- //Получаем уведомление об авторских прав
- echo '<div class="mainname">'.Lang::__('Авторские права').'</div>';
- echo '<div class="mainpost">';
- echo '<div class="subpost">';
- echo $sversion->CopyrightVersion();
- echo '</div>';
- echo '</div>';
-
- //Получаем информацию о системных процессах необходимых для работыыы
- echo '<div class="mainname">'.Lang::__('Системные процессы').'</div>';
- echo '<div class="mainpost">';
- echo $tasks;
- echo '</div>';
-
- //Переадресация
- echo engine::home(array(Lang::__('Назад'),'index.php?do=diagnostic'));
- break;
-
- //Отключенные + Неотлюченные функции php
- case 'php_function':
-
- echo '<div class="mainname">'.Lang::__('Небезопастные PHP функции').'</div>';
-
- echo '<div class="mainpost">';
- echo '<div class="subpost"><img src="../icons/support/frame.png"> Полную информацию о безопастности почитайте тут - <a href="/admin/system/index.php?do=system&act=info_phpfunction">Просмотр</a></div>';
-
- //Небезопастная функция exec
- echo '<div class="subpost"><img src="../icons/support/text.png"> <b>exec</b> - ';
- if (!engine::function_enabled('exec')) {
- echo '<font color="green"><b>Отключена</b></font>';
- }else {
- echo '<font color="red"><b>Включена</b></font>';
- }
- echo '<br/>Описание: Исполняет внешнюю программу'; // Описание
- echo '<hr/>';
-
- //Небезопастная функция system
- echo '<img src="../icons/support/text.png"> <b>system</b> - ';
- if (!engine::function_enabled('system')) {
- echo '<font color="green"><b>Отключена</b></font>';
- }else {
- echo '<font color="red"><b>Включена</b></font>';
- }
- echo '<br/>Описание: Выполняет внешнюю программу и отображает её вывод';// Описание
- echo '<hr/>';
-
- //Небезопастная функция popen
- echo '<img src="../icons/support/text.png"> <b>popen</b> - ';
- if (!engine::function_enabled('popen')) {
- echo '<font color="green"><b>Отключена</b></font>';
- }else {
- echo '<font color="red"><b>Включена</b></font>';
- }
- echo '<br/>Описание: Открывает файловый указатель процесса';// Описание
- echo '<hr/>';
-
- //Небезопастная функция proc_open
- echo '<img src="../icons/support/text.png"> <b>proc_open</b> - ';
- if (!engine::function_enabled('proc_open')) {
- echo '<font color="green"><b>Отключена</b></font>';
- }else {
- echo '<font color="red"><b>Включена</b></font>';
- }
- echo '<br/>Описание: Выполняет команду и открывает указатель на файл для ввода/вывода'; // Описание
- echo '<hr/>';
-
- //Небезопастная функция shell_exec
- echo '<img src="../icons/support/text.png"> <b>shell_exec</b> - ';
- if (!engine::function_enabled('shell_exec')) {
- echo '<font color="green"><b>Отключена</b></font>';
- }else {
- echo '<font color="red"><b>Включена</b></font>';
- }
- echo '<br/>Описание: Выполняет команду через шелл и возвращает полный вывод в виде строки';// Описание
- echo '</div>';
-
- echo '</div>';
- echo engine::home(array(Lang::__('Назад'),'index.php?do=diagnostic&act=info'));
- break;
-
- endswitch;
- ?>