페이지별 카운터를 만들고있는데 도와주세요 ㅠㅠ
본문
이 팁을 참조해서 만들고있는데 카운터가 1에서 올라가질않네요..ㅠㅠ
다른아이디로 들어가도 올라가질않아요.. 뭐가문젠지..ㅠㅠ
아 그리고
새로고침할때마다 올라가게끔 어떻게 하나요..?
답변 2
일단은 다른 아이디로 접속해도 안되는게 당연하고요
이유는 로직자체가 아이피로 체크를 하기때문입니다.
아이디가 바뀌어도 접속 아이피는 동일하기때문에
같은것으로 판단하여 카운트가 1만 올라가는것이고요
일단 정상적으로 작동하게 코드는 완성하신것같습니다.
새로고침할때마다 +1씩 계속 증가되면 되는거죠??
if(!strstr($pagecnt[ip_list], "/".$_SERVER[REMOTE_ADDR]."/")) {
if($pagecnt) sql_query("update `pagecnt` set cnt=cnt+1, ip_list=CONCAT(ip_list, '$_SERVER[REMOTE_ADDR]/') where date='$g4[time_ymd]' and page='$_SERVER[PHP_SELF]'");
else sql_query("insert into `pagecnt` set cnt=1, ip_list='/$_SERVER[REMOTE_ADDR]/', date='$g4[time_ymd]', page='$_SERVER[PHP_SELF]'");
}
이렇게 if로 시작하죠?
괄호}가 닫기는 부분에 else 추가해서 +1해주시면 되겟네요
if(!strstr($pagecnt[ip_list], "/".$_SERVER[REMOTE_ADDR]."/")) {
if($pagecnt) sql_query("update `pagecnt` set cnt=cnt+1, ip_list=CONCAT(ip_list, '$_SERVER[REMOTE_ADDR]/') where date='$g4[time_ymd]' and page='$_SERVER[PHP_SELF]'");
else sql_query("insert into `pagecnt` set cnt=1, ip_list='/$_SERVER[REMOTE_ADDR]/', date='$g4[time_ymd]', page='$_SERVER[PHP_SELF]'");
}else{//ip중복이라면 실행코드
if($pagecnt) sql_query("update `pagecnt` set cnt=cnt+1, ip_list=CONCAT(ip_list, '$_SERVER[REMOTE_ADDR]/') where date='$g4[time_ymd]' and page='$_SERVER[PHP_SELF]'");
else sql_query("insert into `pagecnt` set cnt=1, ip_list='/$_SERVER[REMOTE_ADDR]/', date='$g4[time_ymd]', page='$_SERVER[PHP_SELF]'");}
테스트는 안해봣는데 대략 이런식으로 구성하면
if(아이피중복일때){
기존소스실행되고
}else{//아이피중복이지만 실행
기존추가 쿼리문실행
}
아주 쉽게 생각을 하시느것이 좋을 듯합니다
기능 작동하는 소스야 많지만
그걸 새로고친할때마다 올라가게 이런 조건으로 한다면
소스 상단에 update `pagecnt` set cnt=cnt+1 하면 될는거고
문제는 where 문구인데 날자나 페이지정보 등의 동적 키로 조건을 잡지마시고
페이지별 키를 만드세요
좀 부연설명을 하자면 게시판에 저장 table의 필드를 보면 여러가지 필드가잇는데
구지
wr_id | int(11) | 아니오 | auto_increment |
---|
이런식으로 변하지 안 는 필드를 두는 것이 그이유입니다
즐거운 하루되세요