로그인 기록 미일치 문의

로그인 기록 미일치 문의

QA

로그인 기록 미일치 문의

답변 2

본문

안녕하세요.

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

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

 

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

 


   // 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);
        }
    }

 


         // 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.' 첫로그인', '', $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

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

 

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

$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 방식이라면 시간까지 체크해서 등록하도록 처리하거나 아니면

 



   // 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 체크를 안하고 무조건 기록 되도록 수정하시면 됩니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 0
© SIRSOFT
현재 페이지 제일 처음으로