백엔드 개발 PHP 튜토리얼 온라인 베이징 시간 PHP에서 사용자 온라인 시간을 계산하려는 시도

온라인 베이징 시간 PHP에서 사용자 온라인 시간을 계산하려는 시도

Jul 29, 2016 am 08:43 AM

다음은 가장 일반적으로 사용되는 방법 중 일부입니다.
먼저 관련된 데이터 테이블 구조, 네 가지 필드를 소개합니다.

코드 복사 코드는 다음과 같습니다. 다음:


uid<int(10)>: 사용자 ID
session_id<varchar(40)>: 사용자 로그인 후 시스템에서 생성된 session_id, PHP는 session_id를 사용할 수 있습니다. () 함수를 사용하여
login_time: login time
logout_time: logout time


을 가져옵니다.1. 정기적으로 서버. 구현 방법은 사용자가 로그인한 후 레코드에 uid, session_id, login_time을 삽입한 다음 클라이언트 js에 타이머를 설정하는 것입니다. 예를 들어 로그아웃 업데이트 목적을 달성하기 위해 10분마다 서버에 요청을 보냅니다. 물론 간격을 짧게 설정할수록 데이터가 정확해질 수 있지만, 실제 상황에 따라 적절한 값으로 설정할 수 있습니다. 웹게임의 거의 모든 요청이 ajax 요청이고 페이지를 새로 고칠 필요가 없기 때문에 이 방법은 웹게임에서 널리 사용됩니다.
2. 서버는 예약된 폴링 스크립트를 설정합니다. 이 방법은 서버 측에서 예약된 실행 스크립트를 작성하는 것입니다. 예를 들어 5분마다 한 번씩 실행합니다. 데이터베이스의 기록을 기반으로 각 세션의 session_id가 서버에 여전히 존재하는지 판단합니다. , logout_time이 업데이트되지 않으면 건너뜁니다. 이 방법도 온라인 시간을 정확하게 계산할 수 있지만 서버를 제어해야 한다는 단점이 있습니다. 그렇지 않으면 타이밍 스크립트를 설정할 수 없습니다. Linux 시스템은 crontab을 통해 이를 수행할 수 있고 Windows 시스템은 예약된 작업을 통해 이를 수행할 수 있습니다. 방금 가상 호스트를 구입했다면 이 방법도 적합하지 않습니다.
3. 사용자가 활성화될 때마다 로그아웃 시간을 업데이트합니다. 이런 방식으로 사용자가 비활성 상태이거나 로그아웃하면 로그아웃 시간이 자연스럽게 데이터베이스에 존재하게 됩니다. 이 기사에서 중점적으로 다루는 해결 방법이기도 합니다. 구현 방법은 아래와 같습니다.
먼저 사용자가 성공적으로 로그인한 후 uid와 session_id를 기록하고 현재 시간을 로그인 시간으로 사용하고 현재 시간인 600s를 로그아웃 시간으로 사용하여 데이터베이스에 삽입합니다.

코드 복사 코드는 다음과 같습니다.


$uid = $_SESSION['uid'] = $info[' id'] ;
$session_id = $_SESSION['session_id'] = session_id();
$login_time = time()
$logout_time = time() 600; INSERT INTO member_login(uid,session_id,login_time,logout_time) 값($uid,'$session_id',$login_time,$logout_time)";
mysql_query($sql);

그런 다음 매번 사용자 활동 시간, 즉 페이지를 클릭할 때마다 세션이 존재하는 경우, 즉 사용자가 로그인한 경우 사용자 로그아웃 시간이 업데이트됩니다.

코드 복사 코드는 다음과 같습니다.

if($_SESSION['uid']){
$uid = $_SESSION['uid']
$ session_id = $_SESSION['session_id'];
$ logout_time = time() 600;
$sql = "upDATE member_login SET logout_time=$logout_time WHERE uid=$uid AND sessi
mysql_query($sql) ;
}

이 방법의 장점은 구현이 비교적 간단하고 대부분의 웹사이트에 적용할 수 있으며 추가 서버 요구 사항이 없으며 사용자의 온라인 시간을 정확하게 계산할 수도 있다는 것입니다. .
단점도 뚜렷하고 데이터베이스 업데이트 작업으로 인해 시스템 부하가 늘어나지만 중소 규모 웹사이트에서는 문제가 되지 않습니다.
위 내용은 온라인 베이징 시간의 내용을 포함하여 PHP에서 온라인 베이징 시간으로 사용자의 온라인 시간을 계산하려는 시도를 소개한 것이며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

11 최고의 PHP URL 쇼트너 스크립트 (무료 및 프리미엄) 11 최고의 PHP URL 쇼트너 스크립트 (무료 및 프리미엄) Mar 03, 2025 am 10:49 AM

11 최고의 PHP URL 쇼트너 스크립트 (무료 및 프리미엄)

Instagram API 소개 Instagram API 소개 Mar 02, 2025 am 09:32 AM

Instagram API 소개

Laravel의 플래시 세션 데이터로 작업합니다 Laravel의 플래시 세션 데이터로 작업합니다 Mar 12, 2025 pm 05:08 PM

Laravel의 플래시 세션 데이터로 작업합니다

Laravel Back End : Part 2, React가있는 React 앱 구축 Laravel Back End : Part 2, React가있는 React 앱 구축 Mar 04, 2025 am 09:33 AM

Laravel Back End : Part 2, React가있는 React 앱 구축

Laravel 테스트에서 단순화 된 HTTP 응답 조롱 Laravel 테스트에서 단순화 된 HTTP 응답 조롱 Mar 12, 2025 pm 05:09 PM

Laravel 테스트에서 단순화 된 HTTP 응답 조롱

PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법 PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법 Mar 14, 2025 am 11:42 AM

PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법

Codecanyon에서 12 개의 최고의 PHP 채팅 스크립트 Codecanyon에서 12 개의 최고의 PHP 채팅 스크립트 Mar 13, 2025 pm 12:08 PM

Codecanyon에서 12 개의 최고의 PHP 채팅 스크립트

라 라벨에서 알림 라 라벨에서 알림 Mar 04, 2025 am 09:22 AM

라 라벨에서 알림

See all articles