Files

36 lines
1.2 KiB
PHP
Raw Permalink Normal View History

<?php
// Auditoría de acciones de administración.
// Uso: require_once __DIR__.'/audit.php'; luego audit_log('categoria_update', 'detalle');
require_once dirname(__DIR__) . '/config.php';
function audit_log($accion, $detalle = '') {
global $CFG;
if (session_status() !== PHP_SESSION_NONE && !empty($_SESSION['usersession'])) {
$u = json_decode($_SESSION['usersession'], true);
$numempl = isset($u['numempl']) ? $u['numempl'] : '';
$userid = isset($u['userid']) ? (int)$u['userid'] : 0;
} else {
$numempl = '';
$userid = 0;
}
$ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : 'UNKNOWN';
$archivo = isset($_SERVER['SCRIPT_NAME']) ? basename($_SERVER['SCRIPT_NAME']) : '';
if (strlen($detalle) > 2000) { $detalle = substr($detalle, 0, 2000); }
$logDir = dirname(__DIR__) . '/logs';
if (!is_dir($logDir)) { @mkdir($logDir, 0775, true); }
$linea = sprintf(
"%s\t%s\t%d\t%s\t%s\t%s\t%s\n",
date('Y-m-d H:i:s'),
$ip,
$userid,
$numempl,
$archivo,
$accion,
str_replace(array("\t", "\r", "\n"), ' ', $detalle)
);
@file_put_contents($logDir . '/admin.log', $linea, FILE_APPEND | LOCK_EX);
}