Home Backend Development PHP Tutorial php下统计用户在线时间的一种尝试_php技巧

php下统计用户在线时间的一种尝试_php技巧

May 17, 2016 am 09:23 AM
statistics

下面列出几个比较常用的方法:

首先介绍一下所涉及的数据表结构,四个字段:

复制代码 代码如下:

uid :用户id
session_id :用户登录后系统产生的session_id,PHP可是使用session_id()函数获取
login_time :登录时间
logout_time :登出时间

1. 客户端定时发送请求到服务器端。实现方法是在用户登录后,将uid,session_id,login_time插入一条记录,然后在客户端js设定一个计时器,比如每10分钟向服务器端发送一个请求,以此来达到更新登出时间的目的,当然这个间隔时间设定的越短,数据可能会越准确,不过相应的系统的负载也会越高,这个可以根据实际情况设定一个合适的值。这种方法广泛应用于webgame上,因为webgame的几乎所有请求都是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;
$sql = "INSERT INTO member_login (uid,session_id,login_time,logout_time) values($uid,'$session_id',$login_time,$logout_time)";
mysql_query($sql);

然后在用户每次活动,也就是每点击一个页面时,如果session存在也就是处于登录状态时,更新用户登出时间
复制代码 代码如下:

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 session_id='$session_id'";
mysql_query($sql);
}

这种方法的优点是相对来说实现起来比较简单,能够适用于大多数的网站,没有额外的服务器需求,而且也可以比较准确的统计用户的在线时间。
缺点也很明显,增加了数据库的更新操作,增加了系统的负载,不过对于中小型网站来说应该不是问题。
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to implement data statistics and analysis in uniapp How to implement data statistics and analysis in uniapp Oct 24, 2023 pm 12:37 PM

How to implement data statistics and analysis in uniapp 1. Background introduction Data statistics and analysis are a very important part of the mobile application development process. Through statistics and analysis of user behavior, developers can have an in-depth understanding of user preferences and usage habits. Thereby optimizing product design and user experience. This article will introduce how to implement data statistics and analysis functions in uniapp, and provide some specific code examples. 2. Choose appropriate data statistics and analysis tools. The first step to implement data statistics and analysis in uniapp is to choose the appropriate data statistics and analysis tools.

Implementation of linear and pie chart functions in Vue statistical charts Implementation of linear and pie chart functions in Vue statistical charts Aug 19, 2023 pm 06:13 PM

The linear and pie chart functions of Vue statistical charts are implemented in the field of data analysis and visualization. Statistical charts are a very commonly used tool. As a popular JavaScript framework, Vue provides convenient methods to implement various functions, including the display and interaction of statistical charts. This article will introduce how to use Vue to implement linear and pie chart functions, and provide corresponding code examples. Linear graph function implementation A linear graph is a type of chart used to display trends and changes in data. In Vue, we can use some excellent

Steps of statistical analysis Steps of statistical analysis Jun 28, 2023 pm 03:27 PM

Statistical analysis often refers to the process of sorting, classifying and interpreting collected relevant data. The basic steps of statistical analysis include: 1. Collect data; 2. Organize data; 3. Analyze data.

How to use SQL statements for data aggregation and statistics in MySQL? How to use SQL statements for data aggregation and statistics in MySQL? Dec 17, 2023 am 08:41 AM

How to use SQL statements for data aggregation and statistics in MySQL? Data aggregation and statistics are very important steps when performing data analysis and statistics. As a powerful relational database management system, MySQL provides a wealth of aggregation and statistical functions, which can easily perform data aggregation and statistical operations. This article will introduce the method of using SQL statements to perform data aggregation and statistics in MySQL, and provide specific code examples. 1. Use the COUNT function for counting. The COUNT function is the most commonly used

How to quickly build a statistical chart system under the Vue framework How to quickly build a statistical chart system under the Vue framework Aug 21, 2023 pm 05:48 PM

How to quickly build a statistical chart system under the Vue framework. In modern web applications, statistical charts are an essential component. As a popular front-end framework, Vue.js provides many convenient tools and components that can help us quickly build a statistical chart system. This article will introduce how to use the Vue framework and some plug-ins to build a simple statistical chart system. First, we need to prepare a Vue.js development environment, including installing Vue scaffolding and some related plug-ins. Execute the following command in the command line

Use Google Analytics to count website data in Beego Use Google Analytics to count website data in Beego Jun 22, 2023 am 09:19 AM

With the rapid development of the Internet, the use of Web applications is becoming more and more common. How to monitor and analyze the usage of Web applications has become a focus of developers and website operators. Google Analytics is a powerful website analytics tool that can track and analyze the behavior of website visitors. This article will introduce how to use Google Analytics in Beego to collect website data. 1. To register a Google Analytics account, you first need to

How to use MySQL's COUNT function to count the number of rows in a data table How to use MySQL's COUNT function to count the number of rows in a data table Jul 25, 2023 pm 02:09 PM

How to use MySQL's COUNT function to count the number of rows in a data table. In MySQL, the COUNT function is a very powerful function that is used to count the number of rows in a data table that meet specific conditions. This article will introduce how to use MySQL's COUNT function to count the number of rows in a data table, and provide relevant code examples. The syntax of the COUNT function is as follows: SELECTCOUNT(column_name)FROMtable_nameWHEREconditi

Do you know how to count people in excel? Do you know how to count people in excel? Mar 20, 2024 pm 01:30 PM

As one of the commonly used office software, Excel is an indispensable good partner in our life and work. We often use it to count people, which is also the most common operation. For veterans who are familiar with Excel, using it to count people is a matter of minutes; but if you are a novice, using ecxel to count people is simply difficult! So how to use it? I compiled a document today, I hope it can help you! Let’s take a look together! Method 1: [Use functions to count people] (as shown in the picture) We enter [=COUNT(B2:B6)] in the bottom unit cell; then, press [Enter] to get the number of people. Method 2: [Use the status bar to count people] (as shown in the picture). 1. We click the mouse

See all articles