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]); } ?>