2026, 새로운 도약을 시작합니다.

로그인 기록 미일치 문의 채택완료

1년 전 조회 10,527

안녕하세요.

로그인 기록을 보관하는 g5_login_history에 기록이 제대로 남지 않아 문의 드립니다.

순수 그누보드를 사용중이며, g5_member 테이블의 mb_today_login이 어제자로 남아 있는 회원이 g5_login_history에 기록이 없는경우입니다.

로그인 기록을 추가하기위해 제가 조치한 사항은 tail.sub.php에서 login_history 테이블에 당일 해당 유저의 기록이 없을시 해당유저를 기록하도록 추가했으며, common.php 에서 오늘 처음 로그인이라면 login_history($member['mb_id']); 를 부르도록 추가했습니다.

Copy


   // tail.sub.php 에 아래 코드 추가

    if ( $member['mb_id'] ){

        $date = date('Y-m-d', time());

 

        $sql = "SELECT count(*) as cnt FROM g5_login_history WHERE mb_id = '{$member['mb_id']}' and lh_datetime_login like '{$date}%'";

        $row = sql_fetch($sql);

   

        if( $row['cnt'] == 0 ){

            login_history($mb_id);

        }

    }

Copy


         // common.php line 539

        // 오늘 처음 로그인 이라면

        if (substr($member['mb_today_login'], 0, 10) != G5_TIME_YMD) {

            // 첫 로그인 포인트 지급

            insert_point($member['mb_id'], $config['cf_login_point'], G5_TIME_YMD.' 첫로그인', '@login', $member['mb_id'], G5_TIME_YMD);

 

            // 오늘의 로그인이 될 수도 있으며 마지막 로그인일 수도 있음

            // 해당 회원의 접근일시와 IP 를 저장

            $sql = " update {$g5['member_table']} set mb_today_login = '".G5_TIME_YMDHIS."', mb_login_ip = '{$_SERVER['REMOTE_ADDR']}' where mb_id = '{$member['mb_id']}' ";

            sql_query($sql);

 

            login_history($member['mb_id']);

        }

하지만 이 또한 기록이 모두 남지 않는것으로 파악되었습니다. 로그인시 무조건 login_history 테이블에 기록하기 위해서는 어떻게 해야하는지 궁금합니다.

답변 2개

채택된 답변
+20 포인트
$sql = "SELECT count(*) as cnt FROM g5_login_history WHERE mb_id = '{$member['mb_id']}' and lh_datetime_login like '{$date}%'";

해당 쿼리에 해당 날짜로 한번 등록된게 있다면 등록이 안되도록 된걸로 보입니다.

위 부분을 계속 기록을 남기시려면 lh_datetime_login like '{$date}%' 부분을 해당 datetime 방식이라면 시간까지 체크해서 등록하도록 처리하거나 아니면

Copy



   // tail.sub.php 에 아래 코드 추가
    if ( $member['mb_id'] ){
        $date = date('Y-m-d', time());
 
        /*$sql = "SELECT count(*) as cnt FROM g5_login_history WHERE mb_id = '{$member['mb_id']}' and lh_datetime_login like '{$date}%'";
        $row = sql_fetch($sql);
   
        if( $row['cnt'] == 0 ){*/
            login_history($mb_id);
        //}
    }

해당 부분을 주석하거나 해서 cnt 체크를 안하고 무조건 기록 되도록 수정하시면 됩니다.

로그인 후 평가할 수 있습니다

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

오늘 처음 로그인의 경우는 자동 로그인은 인식하지 못하는 걸로 알고 있습니다.

따라서, 위 경우는 extend 폴더에서 실시간 체크 그게 아니라면 return 형식으로 설정하시는게 좋을 듯 합니다.

로그인 후 평가할 수 있습니다

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

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

로그인
🐛 버그신고