로그인 기록 미일치 문의 채택완료
위젯마스터
1년 전
조회 10,242
안녕하세요.
로그인 기록을 보관하는 g5_login_history에 기록이 제대로 남지 않아 문의 드립니다.
순수 그누보드를 사용중이며, g5_member 테이블의 mb_today_login이 어제자로 남아 있는 회원이 g5_login_history에 기록이 없는경우입니다.
로그인 기록을 추가하기위해 제가 조치한 사항은 tail.sub.php에서 login_history 테이블에 당일 해당 유저의 기록이 없을시 해당유저를 기록하도록 추가했으며, common.php 에서 오늘 처음 로그인이라면 login_history($member['mb_id']); 를 부르도록 추가했습니다.
</p>
<p> // tail.sub.php 에 아래 코드 추가</p>
<p> if ( $member['mb_id'] ){</p>
<p> $date = date('Y-m-d', time());</p>
<p> </p>
<p> $sql = "SELECT count(*) as cnt FROM g5_login_history WHERE mb_id = '{$member['mb_id']}' and lh_datetime_login like '{$date}%'";</p>
<p> $row = sql_fetch($sql);</p>
<p> </p>
<p> if( $row['cnt'] == 0 ){</p>
<p> login_history($mb_id);</p>
<p> }</p>
<p> }</p>
<p>
</p>
<p> // common.php line 539</p>
<p> // 오늘 처음 로그인 이라면</p>
<p> if (substr($member['mb_today_login'], 0, 10) != G5_TIME_YMD) {</p>
<p> // 첫 로그인 포인트 지급</p>
<p> insert_point($member['mb_id'], $config['cf_login_point'], G5_TIME_YMD.' 첫로그인', '@login', $member['mb_id'], G5_TIME_YMD);</p>
<p> </p>
<p> // 오늘의 로그인이 될 수도 있으며 마지막 로그인일 수도 있음</p>
<p> // 해당 회원의 접근일시와 IP 를 저장</p>
<p> $sql = " update {$g5['member_table']} set mb_today_login = '".G5_TIME_YMDHIS."', mb_login_ip = '{$_SERVER['REMOTE_ADDR']}' where mb_id = '{$member['mb_id']}' ";</p>
<p> sql_query($sql);</p>
<p> </p>
<p> login_history($member['mb_id']);</p>
<p> }</p>
<p>
하지만 이 또한 기록이 모두 남지 않는것으로 파악되었습니다. 로그인시 무조건 login_history 테이블에 기록하기 위해서는 어떻게 해야하는지 궁금합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
플라이
Expert
1년 전
$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 방식이라면 시간까지 체크해서 등록하도록 처리하거나 아니면
</p>
<pre>
<code> // 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);
//}
}</code></pre>
<p>
해당 부분을 주석하거나 해서 cnt 체크를 안하고 무조건 기록 되도록 수정하시면 됩니다.
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인