Файл admin.phpinfo.php в Cotonti CMF

отвечает за отображение информации о конфигурации PHP на сервере в административной панели

Основное назначение файла и его место в системе:

Файл admin.phpinfo.php в движке Cotonti CMF отвечает за отображение информации о конфигурации PHP на сервере в административной панели. Это позволяет администраторам просматривать подробности о текущей настройке PHP (например, версии, модули, параметры и т. д.). Обычно такие данные полезны для диагностики и конфигурирования серверной среды.

Место в системе: Файл находится в административной части движка Cotonti и доступен через панель управления. Он является частью администрирования системы, обеспечивая доступ к важной информации о сервере, на котором работает сайт.


Суть содержания кода:

  1. Проверка прав доступа: Код проверяет, что текущий пользователь имеет административные права (чтение и запись). Если это не так, доступ к странице блокируется.

  2. Создание и настройка шаблона страницы: Используется система шаблонов XTemplate для отображения информации. Настраивается путь навигации (breadcrumbs), который отображает текущую страницу "PHP" в контексте общей административной панели.

  3. Получение и очистка информации о конфигурации PHP: С помощью функции phpinfo() собирается информация о конфигурации PHP. Затем она очищается от ненужных HTML-элементов, чтобы на странице отображалась только нужная информация.

  4. Использование хуков: В коде предусмотрено место для подключаемых плагинов, которые могут расширить функциональность или изменить вывод страницы.


Список используемых функций:

  1. cot_auth()

    • Назначение: Проверяет права доступа для текущего пользователя.
    • Описание: Возвращает права доступа для определенного раздела системы, в данном случае для администраторского раздела. Функция возвращает массив прав (чтение, запись и админские права).
  2. cot_block()

    • Назначение: Блокирует выполнение кода, если указанный параметр имеет значение false.
    • Описание: В данном случае блокирует выполнение кода, если у пользователя нет прав на чтение (в результате проверки через cot_auth).
  3. cot_tplfile()

    • Назначение: Получает путь к файлу шаблона.
    • Описание: Генерирует путь к шаблону, который будет использован для отображения страницы. В данном случае загружается шаблон для страницы с информацией о PHP.
  4. cot_url()

    • Назначение: Формирует URL для перехода в другие разделы административной панели.
    • Описание: Используется для формирования правильных URL для навигации в административной панели, например, для перехода на страницы "Other" и "PHP".
  5. cot_getextplugins()

    • Назначение: Получает список плагинов, зарегистрированных для выполнения определенных действий (например, хуков).
    • Описание: В данном случае используется для получения плагинов, которые могут подключать дополнительные данные или расширять функциональность на странице (например, добавление информации через хуки).
  6. ob_start(), ob_get_clean(), ob_implicit_flush()

    • Назначение: Работа с буфером вывода.
    • Описание: Функции включают буферизацию вывода, что позволяет захватывать вывод функции phpinfo() и модифицировать его перед выводом на экран.
  7. preg_replace()

    • Назначение: Выполняет поиск и замену по регулярному выражению.
    • Описание: Используется для удаления лишних HTML-тегов из вывода функции phpinfo(), таких как теги DOCTYPE, head, html, а также теги body и html.
  8. str_replace()

    • Назначение: Выполняет замену подстрок в строках.
    • Описание: Заменяет теги <body>, </body>, </html> на пустую строку, очищая вывод от ненужных элементов HTML.
  9. $t->assign()

    • Назначение: Присваивает значения переменным шаблона.
    • Описание: Используется для передачи данных из PHP в шаблон. В данном случае передает очищенную информацию о конфигурации PHP.
  10. $t->parse()

    • Назначение: Парсит и обрабатывает шаблон.
    • Описание: Выполняет обработку шаблона и подготавливает его для вывода.
  11. $t->text()

    • Назначение: Извлекает текстовое содержимое из шаблона.
    • Описание: Извлекает сгенерированный HTML-код из шаблона и сохраняет его в переменную для дальнейшего использования.

Взаимодействие с классами и объектами:

  1. XTemplate:

    • Работает с объектом шаблона XTemplate, который управляет загрузкой и обработкой шаблонов. Этот класс используется для создания интерфейса страницы и вставки данных в шаблон.
  2. cot_url:

    • Это глобальная функция, которая используется для создания URL для навигации внутри административной панели.
  3. cot_getextplugins:

    • Функция, которая позволяет подключать дополнительные плагины для расширения функциональности в различных частях системы. В данном случае она используется для внедрения плагинов в хуки страницы (например, для изменения содержимого).

Характеристика стиля PHP:

  1. Ориентированность на функции: Код использует функции для выполнения различных задач, таких как проверка прав доступа (cot_auth), работа с шаблонами (XTemplate), обработка данных вывода (preg_replace, str_replace).

  2. Чистота кода: Код хорошо структурирован, с ясным разделением ответственности для каждого фрагмента. Используются комментарии для объяснения ключевых шагов.

  3. Использование хуков и плагинов: Механизм хуков и плагинов активно используется для обеспечения расширяемости. Это позволяет сторонним разработчикам добавлять функциональность без изменения основного кода.

  4. Принципы безопасности: В коде используется проверка прав доступа для предотвращения несанкционированного доступа к панели. Также есть защита от выполнения кода с неправильного URL (defined('COT_CODE') && defined('COT_ADMIN')).

  5. Буферизация вывода: Применяется буферизация вывода для захвата и модификации вывода функции phpinfo(). Это позволяет очистить результат и выводить только нужные данные, избегая лишнего HTML.

  6. Подход к совместимости: Использование регулярных выражений для очистки вывода PHP-информации указывает на внимание к совместимости вывода в разных окружениях.

 

<?php
/**
 * Administration panel - PHP Infos
 *
 * @package Cotonti
 * @copyright (c) Cotonti Team
 * @license https://github.com/Cotonti/Cotonti/blob/master/License.txt
 */

(defined('COT_CODE') && defined('COT_ADMIN')) or die('Wrong URL.'); // Проверка на корректность вызова скрипта (нужна для предотвращения доступа через сторонние URL)

list(Cot::$usr['auth_read'], Cot::$usr['auth_write'], Cot::$usr['isadmin']) = cot_auth('admin', 'a'); // Получение прав доступа для пользователя (чтение, запись, администратор)
cot_block(Cot::$usr['auth_read']); // Блокировка доступа, если нет прав на чтение

$t = new XTemplate(cot_tplfile('admin.phpinfo', 'core')); // Создание экземпляра XTemplate для шаблона страницы информации о PHP

$adminPath[] = [cot_url('admin', 'm=other'), Cot::$L['Other'],]; // Добавление пути навигации "Other"
$adminPath[] = [cot_url('admin', 'm=phpinfo'), 'PHP',]; // Добавление пути навигации "PHP" в административной панели

$adminTitle = Cot::$L['adm_phpinfo']; // Название страницы админпанели "PHP Information"

// Запуск буфера вывода
ob_start(); 
ob_implicit_flush(false); // Отключение неявного вывода
phpinfo(); // Получение полной информации о конфигурации PHP
$result = ob_get_clean(); // Чтение содержимого из буфера и очистка буфера

// Удаление ненужных HTML-тегов и чистка вывода
$result = preg_replace('/\s?<!DOCTYPE[^>]*?>\s?/si', '', $result); // Удаление DOCTYPE
$result = preg_replace('/\s?<head[^>]*?>.*?<\/head>\s?/si', '', $result); // Удаление секции head
$result = preg_replace('/\s?<html[^>]*?>\s?/si', '', $result); // Удаление тега html
$result = str_replace(['<body>', '</body>', '</html>'], '', $result); // Удаление тела и заключающего HTML

$t->assign(array(
    'ADMIN_PHPINFO' => $result, // Присваивание очищенного результата в переменную шаблона для отображения
));

/* === Hook === */
foreach (cot_getextplugins('admin.infos.tags') as $pl) { // Включение плагинов для хуков
    include $pl; // Подключение плагинов
}
/* ===== */

$t->parse('MAIN'); // Обработка шаблона "MAIN"
$adminMain = $t->text('MAIN'); // Извлечение и присваивание содержимого шаблона в переменную $adminMain

 

5 минут чтения Administrator

Комментарии (0)

Комментарии отсутствуют
Добавление комментариев доступно только зарегистрированным пользователям

Автор контента

Administrator

Оффлайн

Administrator

Последняя авторизация: 05.07.2026 18:32

  • Страница размещена: 28.01.2025 18:43
  • Последнее обновление: 28.01.2025 18:43

Похожие страницы

Файл admin.cache.disk.php в Cotonti CMF
1 Файл admin.cache.disk.php в движке Cotonti CMF является частью административной панели, предназначенной для управления
Файл admin.config.php в Cotonti CMF
2 Основное назначение файла и его место в системе Файл admin.config.php является частью административной панели системы
Файл admin.extensions.php в Cotonti CMF
3 Файл "admin.extensions.php" в движке Cotonti CMF является важным компонентом административной части системы,
Файл admin.extrafields.php в Cotonti CMF
4 Файл admin.extrafields.php в движке Cotonti CMF предназначен для управления дополнительными полями (extra fields) в
Файл admin.functions.php в Cotonti CMF
5 Основное назначение файла admin.functions.php и его место в системе Файл admin.functions.php в системе Cotonti CMF