Example #1
0
/** 카운터 설정
 * @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;
                    }
                }
            }
        }
    }
}
Example #2
0
<?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();
Example #3
0
         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');