로그인 기록 미일치 문의
본문
안녕하세요.
로그인 기록을 보관하는 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.' 첫로그인', '@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
$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 체크를 안하고 무조건 기록 되도록 수정하시면 됩니다.
!-->오늘 처음 로그인의 경우는 자동 로그인은 인식하지 못하는 걸로 알고 있습니다.
따라서, 위 경우는 extend 폴더에서 실시간 체크 그게 아니라면 return 형식으로 설정하시는게 좋을 듯 합니다.
답변을 작성하시기 전에 로그인 해주세요.