//error_reporting(E_ALL);
error_reporting(E_ERROR);
ini_set('memory_limit','100M');
ini_set('display_errors', 1);
header('Content-Type: text/html; charset=utf-8'); # 페이지 속성 utf-8
header("Expires: Mon 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d, M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
$heatmap_color_1 = "#BBDEFA";
$heatmap_color_arr = array($heatmap_color_1, "#63B5F6", "#2196F3", "#1876F2");
// function
function CutStr($str,$len,$suf='...'){if(strlen($str)<=$len) return $str;$cpos=$len-1;$count_2B=0;$lastchar=$str[$cpos];while(ord($lastchar)>127 && $cpos>=0){$count_2B++;$cpos--;$lastchar=$str[$cpos];}if($count_2B%2){$len--;}return substr($str,0,$len).$suf;}
function Sele($S, $D, $V=false){$R = ($S==$D)?' selected':'';if($V!=false){return $R;}else{echo $R;}}
function output_num($num, $n=0)
{
if (!isset($num) || $num == "") echo "0";
else echo number_format($num,$n);
}
function ret_num($num, $n=0)
{
if (!isset($num) || $num == "") return "0";
else return number_format($num,$n);
}
function output_env_top10($title, $sub_title, $chk_item, $ret_rec, $limitTop)
{
global $LANG_REPORT_RANK;
global $LANG_REPORT_TRNS_SUB;
global $LANG_REPORT_40X;
global $LANG_REPORT_50X;
global $LANG_REPORT_LATENCY;
global $LANG_REPORT_RTT;
global $LANG_REPORT_ERROR;
echo "".$title." ";
echo "
";
echo "";
echo "".$LANG_REPORT_RANK." ".$sub_title." ".$LANG_REPORT_TRNS_SUB." ".$LANG_REPORT_40X." ".$LANG_REPORT_50X." ".$LANG_REPORT_RTT." ".$LANG_REPORT_LATENCY." ";
echo " ";
if (!isset($ret_rec[0][$chk_item])) {
echo "".$LANG_REPORT_ERROR." ";
}
else {
for ($j = 0 ; $j < sizeof($ret_rec) && $j < $limitTop ; $j ++ ) {
echo "";
echo "".($j+1)." ";
echo "".htmlspecialchars($ret_rec[$j][$chk_item])." ";
echo "".ret_num($ret_rec[$j]['ctrns'])." ";
echo "".ret_num($ret_rec[$j]['c40x'])." ";
echo "".ret_num($ret_rec[$j]['c50x'])." ";
echo "".ret_num($ret_rec[$j]['crtt'], 3)." ";
echo "".ret_num($ret_rec[$j]['latency'], 3)." ";
echo " ";
}
}
echo "
";
echo " ";
}
function output_top10($title, $sub_title, $chk_item, $ret_rec, $limitTop)
{
global $LANG_REPORT_RANK;
global $LANG_REPORT_TRNS_SUB;
global $LANG_REPORT_40X;
global $LANG_REPORT_50X;
global $LANG_REPORT_LATENCY;
global $LANG_REPORT_SERVER_WAIT;
global $LANG_REPORT_ERROR;
echo "".$title." ";
echo "";
echo "";
echo "".$LANG_REPORT_RANK." ".$sub_title." ".$LANG_REPORT_TRNS_SUB." ".$LANG_REPORT_40X." ".$LANG_REPORT_50X." ".$LANG_REPORT_SERVER_WAIT." ".$LANG_REPORT_LATENCY." ";
echo " ";
if (!isset($ret_rec[0][$chk_item])) {
echo "".$LANG_REPORT_ERROR." ";
}
else {
for ($j = 0 ; $j < sizeof($ret_rec) && $j < $limitTop ; $j ++ ) {
echo "";
echo "".($j+1)." ";
echo "".htmlspecialchars($ret_rec[$j][$chk_item])." ";
echo "".ret_num($ret_rec[$j]['ctrns'])." ";
echo "".ret_num($ret_rec[$j]['c40x'])." ";
echo "".ret_num($ret_rec[$j]['c50x'])." ";
echo "".ret_num($ret_rec[$j]['cwait'], 3)." ";
echo "".ret_num($ret_rec[$j]['latency'], 3)." ";
echo " ";
}
}
echo "
\n";
echo " \n";
}
function outputDateTable($MagReport, $v_cur_date, $title)
{
$time_hour_rec = $MagReport->GetMagReportDayHourForTT($v_cur_date, "d");
global $LANG_REPORT_WEEK_MON;
global $LANG_REPORT_WEEK_TUS;
global $LANG_REPORT_WEEK_WEN;
global $LANG_REPORT_WEEK_THU;
global $LANG_REPORT_WEEK_FRI;
global $LANG_REPORT_WEEK_SAT;
global $LANG_REPORT_WEEK_SUN;
global $heatmap_color_1;
echo '';
echo "
".$title." ";
echo "
";
echo "";
echo "".$LANG_REPORT_WEEK_MON." ".$LANG_REPORT_WEEK_TUS." ".$LANG_REPORT_WEEK_WEN." ".$LANG_REPORT_WEEK_THU." ".$LANG_REPORT_WEEK_FRI." ".$LANG_REPORT_WEEK_SAT." ".$LANG_REPORT_WEEK_SUN." ";
echo " ";
$stime = strtotime($v_cur_date['sdate']." 00:00:00");
$etime = strtotime($v_cur_date['edate']." 00:00:00");
$w = date("w", $stime);
if ($w == 0) $w = 7;
$today_time = time();
echo "";
for ($i = 1 ; $i < $w ; $i ++ ) {
echo " ";
}
for ($i = $stime ; $i <= $stime + (7-$w)*24*60*60 ; $i += (24*60*60)) {
$date = date("Y-m-d", $i);
if ($i >= ($today_time-24*60*60)) {
echo "$date ";
continue;
}
$ret_item = $MagReport->GetItemRec($time_hour_rec['data'], "sdate", $date);
if ($ret_item == "") {
$ret_item['ctrns'] = 0;
}
$color = GetColorDayHour($time_hour_rec, $ret_item);
//if ($color == $heatmap_color_1) $c = "";
//else $c = "color:#ccc;";
$c = "";
echo "".$date." ";
}
echo " ";
$st = $i;
$j = 0;
for ($i = $st ; $i <= $etime ; $i += (24*60*60)) {
if ($j != 0 && $j%7 == 0) {
echo " ";
$j = 0;
}
$date = date("Y-m-d", $i);
if ($i >= ($today_time-24*60*60)) {
echo "$date ";
$j++;
continue;
}
$ret_item = $MagReport->GetItemRec($time_hour_rec['data'], "sdate", $date);
if ($ret_item == "") {
$ret_item['ctrns'] = 0;
}
$color = GetColorDayHour($time_hour_rec, $ret_item);
//if ($color == $heatmap_color_1) $c = "";
//else $c = "color:#ccc;";
$c = "";
echo "".$date." ";
$j ++;
}
if ($j) {
for ($i = 0 ; $i < (7-$j) ; $i++ ) {
echo " ";
}
}
echo "
";
outputColorDayHour($time_hour_rec);
echo "
";
}
function outputHourTable($MagReport, $v_cur_date, $title)
{
global $LANG_REPORT_OUTPUT_TIME_AM;
global $LANG_REPORT_OUTPUT_TIME_PM;
global $heatmap_color_1;
$time_hour_rec = $MagReport->GetMagReportDayHourForTT($v_cur_date, "h");
//print_r($time_hour_rec);
echo '';
echo "
".$title." ";
echo "
";
echo "";
echo "";
for ($i = 0 ; $i < 24 ; $i ++ ) {
if ($i != 0 && $i%6 == 0) {
echo " ";
}
$hour = sprintf("%02d", $i);
if ($i < 12) $hour_title = sprintf($LANG_REPORT_OUTPUT_TIME_AM, $i);
else if ($i == 12) {
$hour_title = sprintf($LANG_REPORT_OUTPUT_TIME_PM, $i);
}
else {
$hour_title = sprintf($LANG_REPORT_OUTPUT_TIME_PM, $i-12);
}
$ret_item = $MagReport->GetItemRec($time_hour_rec['data'], "hour", $i);
if ($ret_item == "") {
$ret_item['ctrns'] = 0;
}
$color = GetColorDayHour($time_hour_rec, $ret_item);
//if ($color == $heatmap_color_1) $c = "";
//else $c = "color:#ccc;";
$c = "";
echo "".$hour_title." ";
}
echo "
";
outputColorDayHour($time_hour_rec);
echo "
";
}
function GetColorDayHour($time_hour_rec, $item)
{
global $heatmap_color_arr;
$count_depth = 4;
$width_depth = $time_hour_rec['top']['ctrns'] / $count_depth;
for ($i = 0 ; $i < $count_depth ; $i ++ ) {
if ($item['ctrns'] >= $i*$width_depth && $item['ctrns'] < ($i+1)*$width_depth) return $heatmap_color_arr[$i];
}
if ($item['ctrns'] <= 0) return $heatmap_color_arr[0];
return $heatmap_color_arr[$count_depth-1];
}
function outputICONCheckC($pre_c, $cur_c, $good_flag)
{
if ($pre_c == "") $pre_c = 0;
if ($cur_c == "") $cur_c = 0;
if ($pre_c == 0 && $cur_c == 0) {
return "";
}
$img_link = "";
if ($pre_c == 0) { // $cur_c는 늘었으니...
if ($good_flag) {
$img_link = "/report/images/good_increase.png";
}
else {
$img_link = "/report/images/bad_increase.png";
}
}
else if ($cur_c == 0) {
if ($good_flag) {
$img_link = "/report/images/bad_decrease.png";
}
else {
$img_link = "/report/images/good_decrease.png";
}
}
else {
$chk = $cur_c/$pre_c;
if ($chk >= 1.05) {
if ($good_flag) {
$img_link = "/report/images/good_increase.png";
}
else {
$img_link = "/report/images/bad_increase.png";
}
}
else if ($chk <= 0.95) {
if ($good_flag) {
$img_link = "/report/images/bad_decrease.png";
}
else {
$img_link = "/report/images/good_decrease.png";
}
}
}
if ($img_link != "") {
echo " ";
}
}
function outputColorDayHour($time_hour_rec)
{
global $heatmap_color_arr;
if ($time_hour_rec['top']['ctrns'] == "") $time_hour_rec['top']['ctrns'] = 0;
$count_depth = 4;
$width_depth = $time_hour_rec['top']['ctrns'] / $count_depth;
echo "";
echo "";
echo "";
for ($i = 0 ; $i < $count_depth-1 ; $i ++ ) {
if ($i == 0) $c = "";
else $c = "color:black;";
if ($width_depth != 0) $t_str = "~".number_format($width_depth*($i+1));
else $t_str = " ";
echo "".$t_str." ";
}
if ($width_depth != 0) $t_str = "~".number_format($time_hour_rec['top']['ctrns']);
else $t_str = " ";
echo "".$t_str." ";
echo "
";
}
session_start();
## 세션값
extract($_SESSION);
foreach($_REQUEST as $key => $val) $R[$key] = ${'k_'.$key} = trim(str_replace("( select| union| insert| update| delete| drop|\"|\'|#|\/\*|\*\/|\\\|\;)", "", $val));
$base = '/usr/local/apache/htdocs/report/';
$base_new = '/usr/local/apache/htdocs/report/';
require($base.'db_conn.php');
require($base_new.'reports/proc/MagReport.class.php');
require($base_new.'reports/proc/MagDate.class.php');
include_once "/usr/local/apache/htdocs/report/includes/lang.php";
$MagDate = new MagDateClass();
$MagReport = new MagReportClass($connect);
define(_UIP_, $_SERVER['REMOTE_ADDR']);
define(_AGENT_, $_SERVER['HTTP_USER_AGENT']);
$cur_t = time();
$cur_time = date("Y-m-d H:i:s", $cur_t);
$cur_date = date("Y-m-d");
$pre_date = date("Y-m-d", strtotime("-1 days"));
$cur_week = $MagDate->GetDateCurWeek($cur_date);
$cur_month = $MagDate->GetDateCurMonth($cur_date);
//$prev_week = $MagDate->GetDatePrevWeek($cur_date);
//$prev_month = $MagDate->GetDatePrevMonth($cur_date);
if ($k_c == "") $k_c = 10;
if ($k_c > 20) $k_c = 20;
if ($k_o == "") $k_o = "d";
if ($k_d == "") { // 입력이 없으면 하루 전 default
$v_date = date("Y-m-d", strtotime("-1 days"));
}
else {
$v_date = $k_d;
}
// input error
if ($k_o != "d" && $k_o !="w" && $k_o != "m") {
echo "input error";
exit;
}
if ($k_o == "d") {
$msg_pre = $LANG_REPORT_PREV_DAY;
$v_cur_date['sdate'] = $v_date;
$v_cur_date['edate'] = $v_cur_date['sdate'];
$v_pre_date['sdate'] = $MagDate->GetDatePrevDay($v_date);
$v_pre_date['edate'] = $v_pre_date['sdate'];
$v_next_date['sdate'] = $MagDate->GetDateNextDay($v_date);
$v_next_date['edate'] = $v_next_date['sdate'];
if ($v_next_date['sdate'] > $pre_date) {
$v_next_date['sdate'] = "";
$v_next_date['edate'] = "";
}
}
else if ($k_o == "w") {
$msg_pre = $LANG_REPORT_PREV_WEEK;
$v_cur_date = $MagDate->GetDateCurWeek($v_date);
$v_pre_date = $MagDate->GetDatePrevWeek($v_date);
$v_next_date = $MagDate->GetDateNextWeek($v_date);
// 현재 날짜보다 더 다음인 주를 보려고 하면 안되겠지?
if ($v_next_date['sdate'] > $cur_week['edate']) {
$v_next_date['sdate'] = "";
$v_next_date['edate'] = "";
}
}
else {
$msg_pre = $LANG_REPORT_PREV_MONTH;
$v_cur_date = $MagDate->GetDateCurMonth($v_date);
$v_pre_date = $MagDate->GetDatePrevMonth($v_date);
$v_next_date = $MagDate->GetDateNextMonth($v_date);
// 현재 날짜보다 뒤 쪽 달을 보면 안되지?
if ($v_next_date['sdate'] > $cur_month['edate']) {
$v_next_date['sdate'] = "";
$v_next_date['edate'] = "";
}
}
?>
ImageOCR REPORT
// menu 및 날짜 출력
echo '
';
if ($k_o == "d") {
echo "";
}
else {
$click_str = "document.location=\"?d=".$v_date."&o=d\";";
echo "";
}
if ($k_o == "w") {
echo "";
}
else {
$click_str = "document.location=\"?d=".$v_date."&o=w\";";
echo "";
}
if ($k_o == "m") {
echo "";
}
else {
$click_str = "document.location=\"?d=".$v_date."&o=m\";";
echo "";
}
echo "
";
echo '
';
echo "
";
if ($k_o == "d") echo $v_cur_date['sdate']."";
else echo $v_cur_date['sdate']." ~ ".$v_cur_date['edate']."";
echo " ";
echo "
";
echo " ";
?>
echo "
\n";
echo " ";
if ($v_next_date['sdate'] == "") {
echo "
\n";
}
else {
echo "
\n";
}
?>
/*
$total_r = $MagReport->GetMagReportTotal($v_cur_date, $k_o);
$total_r_pre = $MagReport->GetMagReportTotal($v_pre_date, $k_o);
$total_avg_r = $MagReport->GetMagReportTotalAVG($k_o);
*/
?>