>> Edit article
이름
제목
패스워드
PHP로 제작된 페이지 동시 접속자수가 몇명인지 알수 있는 소스를 아시는분은 알려주세요..... 아래는 DB로 된 소스인데..... DB에 테이블 생성을 해야 한다고 하는데T.T 알려주심........ ====================== <? // Mysql DB 사용자 정보 $db_host = "Host Name"; $db_user = "User Name"; $db_passwd = "User Password"; $db_name = "DB Name"; // 사용자의 정보를 갱신하는 시간 간격이다. // 홈페이지 동시 접속수의 평균을 내서 가장 적절한 값을 찾는다. // 보통 10초에서 30초 사이의 값이면 좋다고 생각한다. $refresh_time = 5; // 접속이 끊긴 사용자의 한계시간. // 보통 리프레시 타임보다 2~5초 정도 많게 설정하면 된다. $kill_time = 7; // 데이타 베이스 연결 $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(); // 현 접속 사용자 정보 // 테스트용에서는 정보 목적으로 사용하였다. // 필요없으면 주석 처리할 것 // $row_ip[ip] = 현사용자 접속 IP $row_ip[last_time] = 현사용자 마지막 접속 시간 $row_ip = mysql_fetch_array( $result ); $now_time = date('YmdHis'); $last_time = $row_ip[last_time]; $time_def = $now_time - $last_time; // 요기 까지는 테스트용 정보입니다. // 직접 사용하실 때는 주석처리나 삭제하십시요. // 이미 접속한 사용자라면... 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 " <meta http-equiv='refresh' content='$refresh_time;url=$PHP_SELF'> "; // 이곳을 사용자에 맞게 고쳐서 사용한다. echo " 총 접속자 수 $row[0] 명<br> "; echo " 접속 IP $REMOTE_ADDR <br> "; echo " 마지막 접속 시간 $last_time <br> "; echo " 현재 시간 $now_time <br> "; echo " 시간차 $time_def ";
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved