방문횟수 찍어 볼려고 하는데요...

방문횟수 찍어 볼려고 하는데요...

QA

방문횟수 찍어 볼려고 하는데요...

본문

skin/member/basic/login_check.skin.php

 

파일에


    if (substr($member['mb_today_login'], 0, 10) != G5_TIME_YMD)
    {
        $sql = " update {$g5['member_table']} set mb_2 = mb_2 + 1 where mb_id = '$mb_id' ";
        
        sql_query($sql);
    }

 

로그인을 하면 하루에 한번만 mb_2 에 1 을 추가 해서 방문 횟수를 주려고 했는데요

로그인을 할때 마다 1 씩 올라가더라구요

그래서 찾아보다가 common.php 에 수정을 하라고 해서 위에껄 삭제 하고 

406번째 줄의 sql 문에 

 

            // 오늘의 로그인이 될 수도 있으며 마지막 로그인일 수도 있음
            // 해당 회원의 접근일시와 IP 를 저장
            $sql = " update {$g5['member_table']} set mb_today_login = '".G5_TIME_YMDHIS."', mb_2 = '{$member['mb_2']}' + 1 , mb_login_ip = '{$_SERVER['REMOTE_ADDR']}' where mb_id = '{$member['mb_id']}' ";
            sql_query($sql);

 

 

이걸 추가 했는데 들어가 지지가 안더라구요 mb_2 이렇게 해도 값이 들어가 지지를 않던데??

저 부분을 수정 하는것이 아닌가요??

이 질문에 댓글 쓰기 :

답변 1

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

 

부분이.. 오늘 첫 로그인의 경우에만 실행한다는 의미입니다.

 

오늘 로그인이 두번째 이상이라면.. 해당 $sql 문이 실행되지 않습니다.

 

다른 회원 ID 로 체크해 보거나, if 조건을 잠시 변경해보거나(ex. if (true) )로 테스트 해 보면 될 듯 합니다.

답변 감사합니다.
if (substr($member['mb_today_login'], 0, 10) != G5_TIME_YMD) {
이부분이 오늘 첫 로그인의 경우에만 실행 한다는 의미 라서
skin/member/basic/login_check.skin.php 에 넣으니 로그인 할때 마다 mb_2 값이 1씩 증가를 하고 common 에 넣으니 아에 입력 값이 들어 가지지 않더라구요
어디서 잘못된걸까요??

common 에 넣었을 때.. 입력값이 들어가지 않은건..

오늘 로그인이 2번째 이후라서 그런 것이겠죠.. -> 정상일 수 있습니다.

common 에 넣고.. 내일 로그인했을 때.. 1번 카운트 되는지 확인하면 될 듯 합니다.

답변 감사합니다.
계속 아이디를 새로 만들어서 테스트를 했구요
한번 로그인을 할때마다 DB 의 mb_2 를 확인하면서 하고 있습니다.
common 에 넣었을때 첫번째 라면 1 이라도 들어가야 할건데 아에 들어 가 지지 않아서요

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

전에 if (!$member['mb_2']) $member['mb_2'] = 0;
을 넣어보면 어떨까 합니다.

mb_2 의 최초 값이 없는 상태 '' 에서 + 1 을 해주면.. 1 이 되는지 확실하지 않을 수 있습니다.

조금전 login_check.skin.php 파일 방식으로 실제 테스트를 해보았습니다.

/skin/member/basic/login_check.skin.php

if (substr($mb['mb_today_login'], 0, 10) != G5_TIME_YMD) {
    $sql = " update {$g5['member_table']} set mb_2 = mb_2 + 1 where mb_id = '$mb_id' ";
   
    sql_query($sql);
}


--------

$member 는 로그인이 이루어지고 난 후 사용할 수 있는 변수라서,
login_check.skin.php 에서는 아직 담기지 않았기 때문에 생긴 문제입니다.

/bbs/login_check.php 를 참고하여.. if 문안의 $member 를 $mb 로 변경하였습니다.

마르스컴퍼니 님 답변 정말 감사합니다.
죄송한데요 login_check.skin.php 여기에
 if (substr($member['mb_today_login'], 0, 10) != G5_TIME_YMD)
$member -> $mb 로 바꾸셨다는 말인가요??

아님 common.php 의
 if (substr($member['mb_today_login'], 0, 10) != G5_TIME_YMD)
$member -> $mb 로 바꾸셨다는 말인가요??

둘다 했을때 mb_2 에 입력이 들어 가지지 않더라구요 어디가 뻑이 난건지....
답변 정말 감사합니다.

login_check.skin.php 에서 $member -> $mb 로 변경하였습니다.

if 문이 오늘 첫번째 로그인 여부 체크 로직이니..

if (true) { 로 테스트하여 정상적으로 update 되는지 확인한 후,

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

로 최종확인하면 될 듯 합니다.

제가 테스트한 바로는.. 처음에는.. $mb 가 아닌.. $member 여서 계속 mb_2 의 로그인 횟수 숫자가 증가하였고.. $mb 로 변경하여 정상 작동(하루 한번만 +1)하였습니다.

친절한 답변 감사합니다.
$mb 로 하고 나서는 mb_2 가 증가 되지 않아
새로 회원가입을 하고 로그인을 해도 1 이 증가 되지 않아서
if(true) 일때 업데이트 확인을 하시라고 하셨는데 이게 어떻게 확인을 해야 하는지를 감을 못잡겠네요 ㅠㅠ 불편을 드려 죄송합니다.

if (substr($mb['mb_today_login'], 0, 10) != G5_TIME_YMD) {
    $sql = " update {$g5['member_table']} set mb_2 = mb_2 + 1 where mb_id = '$mb_id' ";
 
    sql_query($sql);
}

에서 if 문은.. 오늘 첫번째 로그인인지를 체크하는 구문입니다.

위 코드를..

if (true) {
    $sql = " update {$g5['member_table']} set mb_2 = mb_2 + 1 where mb_id = '$mb_id' ";
 
    sql_query($sql);
}

로 임시 변경하면..

$sql 문이 항상 실행됩니다.

로그인한 회원의 mb_2 가 처음에는 '1', 로그아웃 후 다시 로그인하면.. '2', .. 로그인할 때마다.. 계속 증가하겠죠..

이렇게 확인이 되면.. if문을 원래대로 바꿔줍니다.


if (substr($mb['mb_today_login'], 0, 10) != G5_TIME_YMD) {
    $sql = " update {$g5['member_table']} set mb_2 = mb_2 + 1 where mb_id = '$mb_id' ";
 
    sql_query($sql);
}


로그아웃 후 다시 로그인을 해도.. mb_2 숫자가 그대로이면.. 로그인 횟수를 하루 한번 체크하는 게 적용된 거겠죠..


새로 회원가입 후, mb_2 가 증가되지 않는 건..
그누보드에서 새로 회원가입을 하면.. 자동으로 로그인이 되고.. mb_today_login 칼럼에도.. 오늘 날짜가 기록됩니다.
그래서..  if (substr($mb['mb_today_login'], 0, 10) != G5_TIME_YMD) {
구문에 의해 mb_2 가 증가되지 않는 것입니다.
내일 로그인해보면.. (또는 해당회원의 mb_today_login 날짜를 어제로 임시로 바꿔본 후.. 테스트하면) +1이 되는 것을 확인할 수 있을 것입니다.

아~~~~~~~~~~~~~~~~~~~~
답변 감사합니다.
늦은 시간 까지 정말 감사합니다.ㅠㅠㅠㅠㅠㅠㅠㅠ
혹시 이거때문에 증가하지 않는건가 했는데
그걸 확실하게 이해를 시켜 주시네요
정말 감사합니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 728
QA 내용 검색
filter #sql ×

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT