방문횟수 찍어 볼려고 하는데요... 채택완료
skin/member/basic/login_check.skin.php
파일에
</p>
<p> 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' ";</p>
<p>
sql_query($sql);
}</p>
<p>
로그인을 하면 하루에 한번만 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) )로 테스트 해 보면 될 듯 합니다.
답변에 대한 댓글 11개
오늘 로그인이 2번째 이후라서 그런 것이겠죠.. -> 정상일 수 있습니다.
common 에 넣고.. 내일 로그인했을 때.. 1번 카운트 되는지 확인하면 될 듯 합니다.
계속 아이디를 새로 만들어서 테스트를 했구요
한번 로그인을 할때마다 DB 의 mb_2 를 확인하면서 하고 있습니다.
common 에 넣었을때 첫번째 라면 1 이라도 들어가야 할건데 아에 들어 가 지지 않아서요
전에 if (!$member['mb_2']) $member['mb_2'] = 0;
을 넣어보면 어떨까 합니다.
mb_2 의 최초 값이 없는 상태 '' 에서 + 1 을 해주면.. 1 이 되는지 확실하지 않을 수 있습니다.
요 if 문을 저렇게 쓰나요???
== != === && 어쩌구 저쩌구 를 다 해도 안되서 요 ㅠㅠ
술생각나네요 하하하하하하하
/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 에 입력이 들어 가지지 않더라구요 어디가 뻑이 난건지....
답변 정말 감사합니다.
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) 일때 업데이트 확인을 하시라고 하셨는데 이게 어떻게 확인을 해야 하는지를 감을 못잡겠네요 ㅠㅠ 불편을 드려 죄송합니다.
$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이 되는 것을 확인할 수 있을 것입니다.
답변 감사합니다.
늦은 시간 까지 정말 감사합니다.ㅠㅠㅠㅠㅠㅠㅠㅠ
혹시 이거때문에 증가하지 않는건가 했는데
그걸 확실하게 이해를 시켜 주시네요
정말 감사합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
if (substr($member['mb_today_login'], 0, 10) != G5_TIME_YMD) {
이부분이 오늘 첫 로그인의 경우에만 실행 한다는 의미 라서
skin/member/basic/login_check.skin.php 에 넣으니 로그인 할때 마다 mb_2 값이 1씩 증가를 하고 common 에 넣으니 아에 입력 값이 들어 가지지 않더라구요
어디서 잘못된걸까요??