68 lines
1.9 KiB
PHP
68 lines
1.9 KiB
PHP
<?php
|
|
require_once _DOCROOT_.'vendor/autoload.php';
|
|
|
|
use Monolog\Logger;
|
|
use Monolog\Handler\StreamHandler;
|
|
use Monolog\Handler\FirePHPHandler;
|
|
|
|
$my_nav = $db->query("SELECT * FROM m_menu where link = '$link'");
|
|
|
|
if($my_nav->numRows() > 0)
|
|
{
|
|
$nav_item = $my_nav->fetchFirst();
|
|
if(preg_match("/\{/", $nav_item['location']))
|
|
{
|
|
$obj = (array) json_decode($nav_item['location']);
|
|
$condition = $_SESSION[$obj['var']];
|
|
$this_case = (array) $obj['case'];
|
|
$found = 0;
|
|
foreach($this_case as $key => $loc)
|
|
{
|
|
if($condition == $key) {
|
|
$found = 1;
|
|
log_nav($_SESSION['rolename'].'|'.$nav_item['link'].'|'.$loc.'|'.$nav_item['description']);
|
|
require_once $loc;
|
|
break;
|
|
}
|
|
}
|
|
if($found != 1) {
|
|
log_nav($_SESSION['rolename'].'|'.$nav_item['link'].'|'.$obj['default'].'|'.$nav_item['description']);
|
|
require_once $obj['default'];
|
|
}
|
|
}
|
|
else {
|
|
if(!file_exists($nav_item['location']))
|
|
{
|
|
log_nav($_SESSION['rolename'].'|'.$nav_item['link'].'|NOT FOUND|');
|
|
require_once 'error404.php';
|
|
}
|
|
else {
|
|
log_nav($_SESSION['rolename'].'|'.$nav_item['link'].'|'.$nav_item['location'].'|'.$nav_item['description']);
|
|
require_once $nav_item['location'];
|
|
}
|
|
}
|
|
}
|
|
|
|
function log_nav($link) {
|
|
global $logdir;
|
|
$logger = new Logger('access');
|
|
$daily_log = $_SESSION['NIP'].'.log';
|
|
|
|
$year_dir = makeDir($logdir.'access/'.date('Y'),0777);
|
|
$month_dir = makeDir($logdir.'access/'.date('Y').'/'.date('m'),0777);
|
|
$day_dir = makeDir($logdir.'access/'.date('Y').'/'.date('m').'/'.date('d'),0777);
|
|
|
|
$dir_log = $logdir.'access/'.date('Y').'/'.date('m').'/'.date('d').'/'.$daily_log;
|
|
$logger->pushHandler(new StreamHandler($dir_log, Logger::DEBUG));
|
|
|
|
if(!empty($_SERVER['HTTP_CLIENT_IP'])) {
|
|
$ip=$_SERVER['HTTP_CLIENT_IP']; // share internet
|
|
} elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
|
|
$ip=$_SERVER['HTTP_X_FORWARDED_FOR']; // pass from proxy
|
|
} else {
|
|
$ip=$_SERVER['REMOTE_ADDR'];
|
|
}
|
|
|
|
$logger->addInfo($link,[$ip]);
|
|
}
|
|
?>
|