팁과노하우

2025.10.28 19:21

출석부 로그인시 자동 출석 체크

사람들이 로그인 하면서 출석부 까먹고 있는 사람들도 있습니다.

저두 그렇 경우가 많네요^^ 

그냥 전 글쓰기보다 그냥 강제로 출석 체크 만들어 봤습니다.

$total_count = (int)$total_row['cnt'];
오류가 생기는분은
$total_count = isset($total_row['cnt']) ? (int)$total_row['cnt'] : 0; 이걸로 대체 해주세요.



rb/rb.mod/attendance

attend.lib.php

맨밑에 복사하시고 붙여 넣기 하세요.

// ----------------------------------------------------
// [추가된 기능] 로그인 성공 시 자동 출석 체크 함수
// ----------------------------------------------------
function rb_attend_auto_check($member) {
    // $member 변수가 없거나 비어 있으면 실행하지 않음
    if (!is_array($member) || empty($member['mb_id'])) return false;

    // 입력 값 설정 (로그인 자동 출석이므로 내용은 기본값)
    $content = '자동 로그인 출석 체크';  // 자동으로 입력 문자 값을 고쳐 주세요.
    $mb_id   = $member['mb_id'];

    // 날짜 정규화
    $ymd8 = rb_attend_norm_ymd8(defined('G5_TIME_YMD') ? G5_TIME_YMD : date('Ymd'));
    $now = defined('G5_TIME_YMDHIS') ? G5_TIME_YMDHIS : date('Y-m-d H:i:s');
    $ip  = $_SERVER['REMOTE_ADDR'] ?? '';

    // 중복 체크
    if (rb_attend_is_checked_today($mb_id, $ymd8)) {
        return ['status' => 'skip', 'msg' => '이미 출석 완료'];
    }

    // 설정과 순위
    $cf = rb_attend_get_config();
    $rank = rb_attend_pick_rank($ymd8);

    // 저장 (attend.write.php의 핵심 SQL 로직)
    sql_query("
    INSERT INTO rb_attendance (mb_id, ymd, at_datetime, at_ip, at_content, at_rank)
    VALUES (
      '".sql_real_escape_string($mb_id)."',
      '{$ymd8}',
      '{$now}',
      '".sql_real_escape_string($ip)."',
      '".sql_real_escape_string($content)."',
      ".($rank ? (int)$rank : "NULL")."
    )
    ");
    $at_id = sql_insert_id();

    // 참여 포인트 지급 (rel_act를 'autobase'로 변경하여 일반 출석과 중복 지급 방지)
    $base = isset($cf['base_attend_point']) ? (int)$cf['base_attend_point'] : 0;
    if ($base > 0) {
        rb_attend_insert_point($mb_id, $base, '로그인 자동 출석 참여', G5_TIME_YMD.'-autobase', $at_id); 
    }

    // 순위 보너스 포인트 (rel_act를 'autorank'로 변경하여 중복 지급 방지)
    $awarded_bonus = 0;
    if ($rank && $rank >= 1 && $rank <= 5) {
        $bonus = 0;
        if ($rank == 1) $bonus = (int)$cf['bonus_rank1'];
        if ($rank == 2) $bonus = (int)$cf['bonus_rank2'];
        if ($rank == 3) $bonus = (int)$cf['bonus_rank3'];
        if ($rank == 4) $bonus = (int)$cf['bonus_rank4'];
        if ($rank == 5) $bonus = (int)$cf['bonus_rank5'];
        if ($bonus > 0) {
            rb_attend_insert_point($mb_id, $bonus, '로그인 자동 출석 순위 보너스', G5_TIME_YMD.'-autorank', $at_id); 
            $awarded_bonus = $bonus;
        }
    }

    // 연속 처리
    $st = rb_attend_update_streak_and_award($mb_id, $ymd8, $cf);

    return [
        'status' => 'success', 
        'msg' => '로그인 자동 출석 완료!',
        'rank' => $rank
    ];
}

bbs/login_check.php

    // 선택필드 초기화 
    $sql = " update {$g5['g5_shop_cart_table']} set ct_select = '0' where od_id = '$s_cart_id' $add_cart_where ";
    sql_query($sql);
}

위부분 찾아서 밑에  복사 하셔서 붙여넣기 하세요

// **↓↓↓↓↓↓ 자동 출석 체크 로직 삽입 ↓↓↓↓↓↓**

// 1. 출석부 라이브러리 파일 포함
include_once(G5_PATH.'/rb/rb.mod/attendance/attend.lib.php');

// 2. 자동 출석 함수 호출. $mb는 로그인 성공 시의 회원 정보입니다.
$attend_result = rb_attend_auto_check($mb);

// 3. (선택 사항) 다음 페이지로 출석 결과 메시지를 전달하기 위해 세션에 저장
if ($attend_result['status'] === 'success') {
    $msg_text = $mb['mb_nick'] . '님, 로그인 시 자동 출석 체크 완료! ';
    if ($attend_result['rank']) {
        $msg_text .= ' ('.$attend_result['rank'].'등 달성)';
    }
    // 다음 페이지 (리디렉션 후 도착할 페이지)에서 출력할 세션 메시지에 저장
    set_session('ss_attend_msg', $msg_text); 
}

// **↑↑↑↑↑↑ 자동 출석 체크 로직 추가 끝 ↑↑↑↑↑↑**



Uploaded Image


Uploaded Image




  • 공유링크 복사
    미니홈 쪽지 구독하기
    구독하고 알림받기

    댓글목록

    profile_image
    미키손미니홈 1:1 대화하기  21일 전

    와우 간절히 필요했던 기능입니다
    진심으로 감사합니다^^

    2025-10-28 20:26

    profile_image
    캐스퍼미니홈 1:1 대화하기  21일 전

    확인을 안해서 한번 사용 해보세요 되는지 저두 잘 모르겠습니다.

    2025-10-28 20:27

    profile_image
    미키손미니홈 1:1 대화하기  21일 전

    테스트 후 피드백하겠습니다

    2025-10-28 20:28

    profile_image
    캐스퍼미니홈 1:1 대화하기  21일 전

    감사합니다.

    2025-10-28 20:29

    profile_image
    캐스퍼미니홈 1:1 대화하기  21일 전

    이건 잘되고 게시판 읽기는 확인을 안해봐서.ㅋㅋ

    2025-10-28 20:39

    profile_image
    미키손미니홈 1:1 대화하기  21일 전

    감지덕지 (感之德之) 입니다요^^

    2025-10-28 21:01

    profile_image
    미키손미니홈 1:1 대화하기  21일 전

    에러가 출력이 됩니다

    /rb/attend.php

    Warning: Undefined array key "cnt" in /home1/jeju444/public_html/rb/rb.mod/attendance/attend.view.php on line 65

    Warning: Undefined array key "cnt" in /home1/jeju444/public_html/rb/rb.mod/attendance/attend.list.php on line 20

    2025-10-28 22:05

    profile_image
    캐스퍼미니홈 1:1 대화하기  21일 전

    자동출석인가요? 아니면 게시판인가요

    2025-10-28 22:07

    profile_image
    캐스퍼미니홈 1:1 대화하기  21일 전

    자동 출석부는 제가 지금 쓰고있엇어 오류가 안날건데..

    2025-10-28 22:08

    profile_image
    미키손미니홈 1:1 대화하기  21일 전

    자동출석기능입니다

    공지사항게시판도 적용했는데
    공지사항 글쓰기시 아래와 같이 에러출력이 됩니다

    Parse error: syntax error, unexpected token "/", expecting end of file in /home1/jeju444/public_html/bbs/view.php on line 146

    2025-10-28 22:09

    profile_image
    캐스퍼미니홈 1:1 대화하기  21일 전

    Warning: Undefined array key "cnt" in /home1/jeju444/public_html/rb/rb.mod/attendance/attend.view.php on line 65
    VIEW 는 손된게 없는데 왜 오류 나시는건지.. 모르겠고요..

    attend.list.php 이것도 20라인도..

    일단 혹시나 모르니 제거 올려드릴게요 파일

    2025-10-28 22:13

    profile_image
    미키손미니홈 1:1 대화하기  21일 전

    네 감사합니다

    2025-10-28 22:19

    profile_image
    캐스퍼미니홈 1:1 대화하기  21일 전

    일단 제환경이 8.3 php

    그누보드 최신업데이트 다했어여

    2025-10-28 22:19

    profile_image
    미키손미니홈 1:1 대화하기  21일 전

    주신파일 적용했는데 에러납니다
    쪽지로 FTP보내드렸습니다^^

    2025-10-28 22:22

    profile_image
    no_profile 민트다이어리미니홈 1:1 대화하기  20일 전

    감사합니다 ^^

    2025-10-29 11:32

    profile_image
    no_profile 하루알바미니홈 1:1 대화하기  20일 전

    MY 설정에서 출석부 설정을 만들어서 자동 ON/OFF 만들고 글 작성도 프리셋 몇개 만들어놓고 돌아가면서 작성되게 할순없을가여?

    2025-10-29 14:16

    profile_image
    캐스퍼미니홈 1:1 대화하기  20일 전

    구건 영자님한테 부탁 하셔야 될것같습니다.ㅠㅠ

    2025-10-29 18:53

    profile_image
    no_profile 우루사100mg미니홈 1:1 대화하기  19일 전

    로그인 즉시 출석 심플합니다. 의미 없는 ㅊㅊ,ㅊㅅ 등 작성 없이 깔끔한 출석

    2025-10-30 14:42