채택완료

(그누보드 5) 초보자 질문합니다. 전체 통계 접속

2026-07-27 (월) 18:21:30 212
1785143952_nAMfXAts8v.webp

사진상  전체 통계 이걸 0으로 조정할수있나요 있다면 함수로 관리자 페이지에서 버튼으로 필요할때 초기화 하는 버튼을 만들고 싶은데요 함수 알려주시면 감사합니다.
|

답변 3개 / 댓글 3개

채택된 답변
+20 포인트
2026-07-27 (월) 20:26:40

잡속자 현황은

g5_visit_sum 이 테이블에 저장됩니다.

$g5['visit_sum_table'] 이것으로 불러오면 될 것입니다.

이 테이블은 칼럼이 날짜와 방문자수 2개만 있어서 

이 합계로 월별 년도별 전체 오늘 등 방문자수를 구하는 것입니다.

전체 방문자수를 초기화 하는 것은 어렵습니다.

전체 방문자수를 특정 날짜로 한다면 아래와 같이 하면 됩니다.

2026-03-15 일 이후 방문자수를 구한다면 아래와 같이 하면 됩니다.

1주전 1달전 등 원하는 형식으로도 구현이 가능 합니다.

Copy
<?php
$start_date = '2026-03-15';
$sql = " SELECT COALESCE(SUM(vs_count), 0) AS total_count FROM {$g5['visit_sum_table']} WHERE vs_date >= '{$start_date}' "; $row = sql_fetch($sql);
$total_count = isset($row['total_count']) ? (int)$row['total_count'] : 0;
echo number_format($total_count);
?>

방문통계 디비를 초기화 할려면 

<?php
// 관리자만 실행
if (!$is_admin) {
    alert('관리자만 접근할 수 있습니다.');
}

// 방문자 집계 테이블 초기화 처리
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['visit_sum_reset'])) {

    // CSRF 토큰 확인
    $post_token    = isset($_POST['reset_token']) ? $_POST['reset_token'] : '';
    $session_token = get_session('visit_sum_reset_token');

    if (
        !$post_token ||
        !$session_token ||
        !hash_equals($session_token, $post_token)
    ) {
        alert('올바르지 않은 요청입니다.');
    }

    // 토큰 재사용 방지
    set_session('visit_sum_reset_token', '');

    // 방문자 집계 테이블 전체 초기화
    $sql = " TRUNCATE TABLE `{$g5['visit_sum_table']}` ";
    $result = sql_query($sql, false);

    if (!$result) {
        alert('방문자 통계 초기화 중 오류가 발생했습니다.');
    }

    alert('방문자 통계가 초기화되었습니다.', $_SERVER['PHP_SELF']);
}

// 초기화용 토큰 생성
try {
    $reset_token = bin2hex(random_bytes(32));
} catch (Exception $e) {
    $reset_token = md5(uniqid((string)mt_rand(), true));
}

set_session('visit_sum_reset_token', $reset_token);
?>

<?php if ($is_admin === 'super') { ?>
<form method="post"
      action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES); ?>"
      onsubmit="return confirm('방문자 통계를 모두 초기화하시겠습니까?\n삭제된 데이터는 복구할 수 없습니다.');">

    <input type="hidden"
           name="reset_token"
           value="<?php echo htmlspecialchars($reset_token, ENT_QUOTES); ?>">

    <button type="submit"
            name="visit_sum_reset"
            value="1"
            class="btn_visit_reset">
        방문자 통계 초기화
    </button>
</form>
<?php } ?>

<style>
.btn_visit_reset {
    padding: 10px 18px;
    border: 0;
    border-radius: 5px;
    background: #d93025;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}

.btn_visit_reset:hover {
    background: #b3261e;
}
</style>

이 렇게 하면 됩니다.

따로 파일을 만들거나 

tail.php 파일에 넣어도 될 것입니다.

관리자만 보이게 되어 있습니다.

답변에 대한 댓글 1개

2026-07-27 (월) 20:45:18
DB 테이블 초기화 가능합니다.
phpmyadmin에서 하실 수도 있고 별도의 버튼을 만들수도 잇습니다.
함수 는 없써요 
참고로 함수 는요 입력한 값을 어떤 규칙으로 결과값을 도출한 값을 말해요
그냥 
https://sir.kr/open-requests
에 만들어달라고 의뢰 하시는 것을 추천
10만원이면 만들어 줄분 많아요

답변에 대한 댓글 1개

답변 감사합니다.
2026-07-27 (월) 20:45:24
DB 테이블 초기화 가능합니다.
phpmyadmin에서 하실 수도 있고 별도의 버튼을 만들수도 잇습니다.

답변에 대한 댓글 1개

답변 감사합니다.

답변을 작성하려면 로그인이 필요합니다.