数据统计与分析在网站后台管理系统中非常重要,开发者可以根据分析所得的结果合理优化网站开发。在网站中,可以通过计算用户当前会话存在的声明周期时间统计当前用户的在线时间。
1.实例过程
统计用户在线时长的原理在于,在用户登录时,将当前时间信息记录在Session会话变量中,当用户注销时,获取注销时间信息并减去原有的Session会话变量中的登录信息。即可得出用户在整个会话的在线时长。
(1)用户自定义session_login_time()函数用来记录当前登录的时间。在函数中,会话变量中记录的为time()函数的返回值。也就是当前日期时间戳。
(2)用户自定义session_logout_time()函数用来记录当前用户注销的时间,并用时间减去使用session_login_time()函数记录的登录时间,最终返回结果。
(3)分别在用户登录和注销时间调用session_login_time()和session_logout_time()函数。用于统计用户在线时长。
2.实例代码
登录:login.php
PHP
<?php
session_start();
if(isset($_POST['btn']))
{
if(($_POST['un']=='admin') && ($_POST['pwd']=='admin')){
$_SESSION['user'] = $_POST['un'];
$_SESSION['pwd'] = $_POST['pwd'];
echo "<script>alert('登录成功!');location='session.php';</script>";
}else
{
echo "<script>alert('用户名密码错误!!');location='login.php';</script>";
}
}
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<div>
<form action=""method="post">
<h2>用户登录</h2>
<div>
用户名:<input type="text" name="un">
</div>
<div>
密码: <input type="password" name="pwd">
</div>
<input type="submit" value="登录" name="btn">
</form>
</div>
</body>
</html>
退出:logout.php
PHP
<?php
session_start();
include 'function.php';
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
统计用户在线时长
<?php
if($_GET['logout']=='logout'){
$re = session_logout_time();
echo "注销登录前您一共在线".$re."秒";
clera_sessions();
}
?>
</body>
</html>
函数封装:function.php
PHP
<?php
function session_login_time(){
if(!isset($_SESSION['start']) && !isset($_SESSION['result'])){
$_SESSION['start'] = time();
$_SESSION['result'] = 0;
}
}
function session_logout_time(){
if(!isset($_SESSION['end'])){
$_SESSION['end'] = time();
$_SESSION['result'] = $_SESSION['end'] - $_SESSION['start'];
return $_SESSION['result'];
}
}
function clera_sessions(){
unset($_SESSION['start']);
unset($_SESSION['end']);
unset($_SESSION['result']);
}