/** 카운터 설정 * @class log * @param -is_all: 모든 상황에서 기록한다 [0!|1] -is_select: 자료를 불러오기만 한다 [0!|1] * @return */ function setCounter($param = '') { global $mini; $param = param($param); def($param['is_all'], 0); def($param['is_select'], 0); $uv = ''; $now = date("Y/m/d"); $q_id = $q_id2 = ''; if (!check($param['id'], 'type:num')) { $param['id'] = ''; } if (!empty($param['id'])) { $q_id = " or id={$param['id']}"; $q_id2 = " and id={$param['id']}"; } if (!empty($mini['set']['use_counter'])) { if (empty($param['is_select']) && (!empty($mini['set']['use_count_bot']) || !checkBot())) { if (!empty($param['is_all']) || empty($mini['referer']) || a(parse_url($mini['referer']), 'host') != $_SERVER['HTTP_HOST'] || !empty($_REQUEST['referer']) && a(parse_url($_REQUEST['referer']), 'host') != $_SERVER['HTTP_HOST']) { // uv 기록 if (!sql("SELECT COUNT(*) FROM {$mini['name']['counter']} WHERE date>='{$now}' and date<=DATE_ADD('{$now}', INTERVAL 1 DAY) and ip='{$mini['ip']}'")) { $uv = ", uv=uv+1"; $url = url("", 1); str($url, 'encode'); sql("INSERT INTO {$mini['name']['counter']} (lang, agent, referer, url, ip, date) VALUES ('{$_SERVER['HTTP_ACCESS_LANGUAGE']}', '{$_SERVER['HTTP_USER_AGENT']}', '{$mini['referer']}', '{$url}', '{$mini['ip']}', '{$mini['date']}')"); } if (!sql("SELECT COUNT(*) FROM {$mini['name']['counter_log']} WHERE date='0000-00-00 00:00:00'")) { $tmp = sql("SELECT SUM(pv) as pv, SUM(uv) as uv FROM {$mini['name']['counter_log']}"); if (empty($tmp['pv'])) { $tmp['pv'] = 0; } if (empty($tmp['uv'])) { $tmp['uv'] = 0; } sql("INSERT INTO {$mini['name']['counter_log']} SET pv={$tmp['pv']}, uv={$tmp['uv']}, date='0000-00-00 00:00:00'"); } // 수정 if (sql("SELECT COUNT(*) FROM {$mini['name']['counter_log']} WHERE date='{$now}'")) { sql("UPDATE {$mini['name']['counter_log']} SET pv=pv+1{$uv} WHERE (date='{$now}' and (id=0{$q_id})) or date='0000-00-00 00:00:00'"); } else { sql("INSERT INTO {$mini['name']['counter_log']} SET id=0, pv=1, uv=1, date='{$now}'"); if (!empty($param['id'])) { sql("INSERT INTO {$mini['name']['counter_log']} SET id={$param['id']}, pv=1, uv=1, date='{$now}'"); } sql("UPDATE {$mini['name']['counter_log']} SET pv=pv+1, uv=uv+1 WHERE date='0000-00-00 00:00:00'"); } } } // 어제/오늘/내일 자료 뽑음 $data = sql("\n\t\t\tq:SELECT * FROM {$mini['name']['counter_log']} WHERE (id=0{$q_id}) and date>=DATE_ADD('{$now}', INTERVAL -1 DAY) and date<=DATE_ADD('{$now}', INTERVAL 1 DAY)\n\t\t\tmode:array\n\t\t"); $mini['counter']['board'] = array(); $mini['counter']['all'] = array(); $mini['counter']['all']['total'] = sql("SELECT * FROM {$mini['name']['counter_log']} WHERE date='0000-00-00 00:00:00'"); $mini['counter']['all']['total']['uv_out'] = number_format($mini['counter']['all']['total']['uv']); $mini['counter']['all']['total']['pv_out'] = number_format($mini['counter']['all']['total']['pv']); if (is_array($data)) { foreach ($data as $key => $val) { $tmp_name = !empty($val['id']) ? 'board' : 'all'; $val['uv_out'] = number_format($val['uv']); $val['pv_out'] = number_format($val['pv']); if (mktime(0, 0, 0, date("m"), date("d") - 1, date("Y")) == strtotime($val['date'])) { $mini['counter'][$tmp_name]['yesterday'] = $val; } else { if (mktime(0, 0, 0, date("m"), date("d") + 1, date("Y")) == strtotime($val['date'])) { $mini['counter'][$tmp_name]['tomorrow'] = $val; } else { $mini['counter'][$tmp_name]['today'] = $val; } } } } } }
<?php $out = array(); require 'header.php'; if (isGET('login')) { if (checkBot() && check('password') && login(cleanMagic($_POST['password']))) { session_regenerate_id(true); home(); } else { $out['title'] = $lang['login']; $out['content'] .= '<form action="./auth.php?login" method="post"> <p>' . password('password') . '</p> <p>' . submitSafe($lang['confirm']) . '</p> </form>'; } } else { if (isGET('logout') && isAdmin()) { $_SESSION['role'] = ''; home(); } else { if (isGET('test') && isAdmin()) { $out['title'] = $lang['login']; $out['content'] .= '<form action="./auth.php?test" method="post"> <p>' . password('password') . '</p> <p>' . submitAdmin($lang['confirm']) . '</p> </form>'; if (check('password')) { $out['content'] .= box(hide(cleanMagic($_POST['password']))); } } else { home();
saveEntry('drafts', $draft, $draftEntry); redirect('view.php?draft=' . $draft); } else { $out['title'] = $lang['editDraft'] . ': ' . $draftEntry['title']; $out['content'] .= '<form action="./edit.php?draft=' . $draft . '" method="post"> <p>' . text('title', $draftEntry['title']) . '</p> <p>' . textarea('content', clean($draftEntry['content'])) . '</p> <p>' . submitAdmin($lang['confirm']) . '</p> </form>'; $out['content'] .= isPOST('content') ? box(cleanMagic($_POST['content'])) : ''; } } else { if (isGET('comment') && (isAdmin() || isAuthor(GET('comment'))) && isValidEntry('comments', GET('comment'))) { $comment = GET('comment'); $commentEntry = readEntry('comments', $comment); if (checkBot() && check('content', $config['maxCommentLength'])) { $commentEntry['content'] = clean(cleanMagic($_POST['content'])); saveEntry('comments', $comment, $commentEntry); $postEntry = readEntry('posts', $commentEntry['post']); redirect('view.php?post=' . $commentEntry['post'] . '/pages/' . pageOf($comment, $postEntry['comment']) . '#' . $comment); } else { $out['title'] = $lang['editComment']; $out['content'] .= '<form action="./edit.php?comment=' . $comment . '" method="post"> <p>' . textarea('content', $commentEntry['content']) . '</p> <p>' . submitSafe($lang['confirm']) . '</p> </form>'; $out['content'] .= isPOST('content') ? box(cleanMagic($_POST['content'])) : ''; } } else { if (isGET('link') && isAdmin() && isValidEntry('links', GET('link'))) { $link = GET('link');