묻고답하기
xe_document_readed_log 테이블에 저장이 안되는 예외가 있나요?
2014.12.09 12:14
안녕하세요. point.controller.php를 수정하여 xe_document_readed_log에 조회 로그를 저장하고 있습니다.
그런데 게시글이 게시된 IP와 조회하는 IP가 동일하면 member_srl이 틀려도 xe_document_readed_log에
저장이 안되는 거 같습니다.
xe_document_readed_log를 강제로 업데이트 할 수 있는 방법이 없는지요?
혹시나해서 xe_documents에 IP를 수정하고 다른 계정으로 접속해서 확인해도 xe_document_readed_log에
레코드 삽입이 안되더군요.
상기 내용관련하여 도움주시면 감사하겠습니다.
댓글 4
-
sejin7940
2014.12.09 14:05
-
willab
2014.12.09 14:30
point.controller.php에서는 if(!$point) return new Object(); 2줄을 주석처리하였다가 지금 원복한 상태구요. 그리고 모든 게시판 조회시 point 1점 추가하도록 환경설정에서 변경하였습니다. 조회 인원 출력하기 위하여 _comment.html 마지막 소스 추가한거 외에는 수정사항 없습니다. 웃긴게 게시글 IP랑 조회 컴퓨터 IP가 같으면 로그인 멤버가 틀려도 readed_log 저장이 안되네요. 그리고 외부에서 접속시 사설IP가 아니라 공인 IP가 저장되고 서버가 위치한 local 망에서는 게이트 웨이가 저장이 되네요. 이부분들이 원인인거 같은데... ㅠㅠ
말씀하신 부분 참조하도록 하겠습니다. 감사합니다.
-
sejin7940
2014.12.09 14:53
IP가 동일하면 안 되는게.. document.controller.php 의 updateReadedCount 이 부분의 제한 때문이예요
그 외에 여러 제한이 이 함수에 걸려있으니.. 해당 함수를 분석해서 중복조회수 방지 위해 해둔 부분을 주석처리하면 될겁니다.
(IP 동일시 중복 안 되게 한건, 개념상으로는 맞거든요. 동일인이 여러 ID 만들어 조회수 장난 못 치게 하기 위한 용도이기에)
-
willab
2014.12.09 16:03
도움 주셔서 정말 감사합니다. 말씀하신대로 updateReadedCount 함수를 확인하니 작성자 IP랑 방문자 IP 관련한 조건문이 있는거 확인하고 임시로 주석 처리후 확인하니 원하는 결과대로 작동하는 거 같습니다. sejin7940님 아니었으면 계속 엉뚱한 곳만 뒤지고 있었을 겁니다. 다시 한번 감사드리며 좋은 하루 되세요.
point.controller.php 를 어떻게 수정했는지에 따라 다를텐데
(아마도 triggerUpdateReadedCount 함수에서 point 가 0 일때도 증가되게 한게 아닐까 예상합니다만)
글 로그 기록은, 기본적으로 포인트 변경대상이 될 경우에 적용됩니다.
결국, document.controller.php 의 updateReadedCount 에 영향을 받으니..
이 함수에서 제한을 걸고 있는 대상이 되는지 ( return false 처리되는) 확인해보세요