테스트 사이트 - 개발 중인 베타 버전입니다

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

위젯마스터 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 포인트
플라이
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 체크를 안하고 무조건 기록 되도록 수정하시면 됩니다.

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

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

1년 전

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

 

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

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

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

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

로그인