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

현재 접속자 로직의 모순

해결방법없이 문제만 제기하는 글입니다.  ^^;;


그누보드5의 현재접속자 정보를 저장하는 다음과 같습니다.
변수 : $g5['login_table']
테이블 : g5_login
g5_login 필드 : lo_ip / mb_id / lo_datetime / lo_location / lo_url

운영원리
접속된 컴퓨터의 IP를 lo_ip 와 조회해서 중복되면 업데이트를 합니다.

문제점
공유기를 이용해서 다른 컴퓨터에서 접속하면 앞서 접속한 정보가 사라집니다.
즉, 동일 IP에서 복수의 아이디로 로그인 한 경우에 최종 접속한 정보만 존재합니다.

개선방법
$_COOKIE["PHPSESSID"] 값을 저장하는 필드를 추가  ex)  lo_phpsessid
중복체크할때 아래와 같이 변경
아이피 중복확인  →   PHPSESSID 중복확인  →   업데이트


참고자료
https://sir.kr/qa/261344

https://blog.naver.com/visioner7/120162406412

댓글 작성

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

로그인하기

댓글 5개

몰랐던 내용이네요 감사합니다
문제는... 세션이 꼭 한 컴퓨터 에서라는 값은 아니라는것입니다.
예를들어 크롬과 익스플로러 두개로 동시접속하면 세션값은 두개가 생성되고 접속자가 2명으로 되겠지요.
100% 확실하게 단일컴퓨터를 인식할기에는 힘들지 않을까 생각합니다.
목적이... 단순 현재 접속수를 찾느냐... 또는 단일 접속자를 찾느냐.. 가 관건이 아닐까 생각해봅니다.
네 맞습니다. 한컴퓨터에서도 2개 이상 브라우저로 접속을 합니다.

비로그인 상태라면 아이피 중복으로 마지막 한개만 인식하고
로그인 상태라면 아이피+아이디 개별로 인식하는것이 어떨까 생각해봅니다.
저것으로 실제 방문수를 알고자 하는게 목적이라면 정확하지 못하다는 말이었구요.
우선 저렇게 db에 남겨두고 전체방문수, 로그인수, 아이피별 방문수 등등
추출해내면 많은 정보를 얻을 수 있어서 좋을꺼 같긴 해요 ^^
접속자 집계 개선안

게시글 목록

번호 제목
24318
24317
24315
24309
24294
24293
24277
24262
24260
24253
24251
24236
24233
24228
24226
24221
24214
24203
24201
24199
24196
24195
24194
24192
24191
24187
24185
24183
24172
24168