강의 컨설팅 트레이닝 무료진단 무료책자 마케팅편지 마케팅정보공유 다이어리 서비스제휴 고객센터

현재접속자 구하기
작성자 : 13 김영철
등록날짜 : 2009.01.14 22:23
2,757

출처: Unix.co.kr

 

웹브라우저로 현재 접속자수를 볼 수 있습니다. ^^

 

안녕하세요. 하늘입니다.
제가 전번에 짜근 커뮤니케이션의 게시판에서 받은 질문을 보고 재미있어서 제작한 것입니다.
보통 웹서버의 특성상 - 결과를 보내고 끊어버리는 -

현재 접속중인 정확한 인원을 나타내기는 힘들죠.
여러가지 방법이 있겠지만 전 리프레쉬 기능을 이용해서 클라이언트와 반복적으로 접속하는 방법으로 만들어 보았습니다.
사용할 때는 작은 프레임을 만들어서 그 안에 두고 사용하시는 것이 좋을 겁니다.
정기적으로 리므레쉬를 하니까요.
이것이 싫으신 분들은 쿠키를 이용하면 되는데, 이 방법이 더 정확할것 같아서요.

아래 소스입니다.

================================================================
테이블 스키마
================================================================
# MySQL dump 6.4
#
#--------------------------------------------------------
# Server version 3.22.27

#
# Table structure for table 'session'
#
CREATE TABLE session (
ip varchar(15) DEFAULT '' NOT NULL,
last_time timestamp(14),
PRIMARY KEY (ip)
);

#
# Dumping data for table 'session'
#
============================================

==============================================
session.php3
===============================================
<?

// Mysql DB 사용자 정보
$db_host = "host_name";
$db_user = "user_name";
$db_passwd = "passwd";
$db_name = "db_name";

// 사용자의 정보를 갱신하는 시간 간격이다.
// 홈페이지 동시 접속수의 평균을 내서 가장 적절한 값을 찾는다.
// 보통 10초에서 30초 사이의 값이면 좋다고 생각한다.
$refresh_time = 30;

// 접속이 끊긴 사용자의 한계시간.
// 보통 리프레시 타임보다 5~10초 정도 많게 설정하면 된다.
$kill_time = 40;

// 데이타 베이스 연결
$connect = mysql_connect( $db_host , $db_user , $db_passwd ) or die ( "DB Server Error" );
mysql_select_db( $db_name ) or die( "DB Error" );

// 접속이 끊긴 사용자 삭제
$query = "DELETE FROM session WHERE (now() - last_time) > $kill_time";
mysql_query( $query , $connect );

// 현접속 사용자 확인
$query = "SELECT * FROM session WHERE ip = '$REMOTE_ADDR'";
$result = mysql_query( $query , $connect );
$total = mysql_affected_rows();

// 이미 접속한 사용자라면...
if($total > 0)
{
// 마지막 접속 시간 갱신
$query = "UPDATE session SET last_time = now() WHERE ip = '$REMOTE_ADDR'";
mysql_query( $query, $connect );
}
//처음 접속한 사용자
else
{
$query = "INSERT INTO session VALUES('$REMOTE_ADDR',now())";
mysql_query( $query, $connect );
}

// 총 접속자수 계산
$query = "SELECT count(*) FROM session";
$result = mysql_query( $query , $connect );
$row = mysql_fetch_array( $result );

mysql_close($connect);

// 리프레쉬 해더
echo " <html><head> ";
echo " <meta http-equiv='refresh' content='$refresh_time;url=$PHP_SELF'> ";
echo " </head> ";

echo " <body bgcolor=#CCCC99 text='blue'> ";
echo " <center><font size=1>Now $row[0] Contact</font></center> ";
echo " </body></html> ";
=====================================================================

출처 : Tong - 드렁크수달스님의 ■ PHP ■통

"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기,
각종 광고, 영업, 판매, 제안서, 전단지
반응율 3배×10배 이상 높이는 마법의 8단계 공식"
자세히보기

Comments

번호 제목 글쓴이 날짜 조회
3135 브라우저객체 - screen 객체 13 김영철 01.29 2864
3134 오른쪽 막기 소스 13 김영철 01.29 2828
3133 EMBED의 모든것!! 13 김영철 01.29 2806
3132 ORA-12154 조치 방법 13 김영철 01.29 4422
3131 [엑셀과 mysql의 데이터이동] 13 김영철 01.14 3083
3130 액티브X IE 패치에 따른 자동 자바스크립트 출력 소스 (회피법) 13 김영철 01.14 3052
3129 익스플로러(IE)플러그인ActiveX액티브엑스활성화특허침해에따른 설계변경패치에대한 개발코딩간편변경방법 13 김영철 01.14 2991
3128 PHP has encountered an Access Violation at 에러 구문 13 김영철 01.14 3001
3127 PHP.INI 설정에 따른 변수 이름 바꾸기 13 김영철 01.14 2833
3126 휴대폰 하이픈 처리 함수 13 김영철 01.14 2927
3125 POST , GET 으로 변수 전달 안될때 13 김영철 01.14 3253
3124 라이오 버튼 디버깅용 체크여부 확인 13 김영철 01.14 2682
3123 특정부분만 프린트하기 13 김영철 01.14 2741
3122 위지에디터 모음 13 김영철 01.14 3189
3121 자바스크립트 관련 페이지 이동 함수 13 김영철 01.14 2781
3120 다중업로드소스 - 검증완료 13 김영철 01.14 2888
열람중 현재접속자 구하기 13 김영철 01.14 2758
3118 $_SERVER 변수의 모든것 13 김영철 01.14 2876
3117 php mail 함수는 sendmail 을 사용 13 김영철 01.14 3458
3116 업로드시 그림 파일명이 한글일경우 이름 자동 변경하기 13 김영철 01.14 3603
3115 php.ini register_globals 13 김영철 01.14 2769
3114 php전역변수 13 김영철 01.14 2892
3113 자바스크립트 라이브러리와 PHP함수 라이브러리 13 김영철 01.14 4187
3112 register_globals = on /off 차이점 13 김영철 01.14 2679
3111 PHP.INI 내용과 각 옵션의 기능(PHP4 기준) 13 김영철 01.14 2925
3110 HTML 내에 PHP 삽입과 특수문자 출력 13 김영철 01.14 3424
3109 개행문자없애기 13 김영철 01.14 2826
3108 테이블 유뮤 확인하는 방법 13 김영철 01.14 2645
3107 쿠키사용 13 김영철 01.14 2592
3106 HTTP_REFERER 사용하기 13 김영철 01.14 2823
마케팅
특별 마케팅자료
다운로드 마케팅자료
창업,경영
기획,카피,상품전략
동기부여,성취