多语言展示
当前在线:245今日阅读:167今日分享:16

php如何利用session和mysql来统计用户在线时常

很多初学者,不太知道怎么计算用户的在线时长,下面小编教大家如何统计
工具/原料

sublime

方法/步骤
1

简单制作一个登陆页面(这里我没写任何的css,主要为了实现功能)

2

接下来是登陆成功跳转页面(这里我没写任何的css,主要为了实现功能)

3

页面完成之后,设计数据库(如果您还有其它需求自行添加其它字段)

4

修改php-ini中session自动开启如果不自动开启每次使用之前就要手动开启如果忘记开启就会导致其它页面取不到session的值

5

//登录代码connect_error) {    die('连接失败: ' . $conn->connect_error);} $adminname=$_POST['adminname'];//用户名$password=md5($_POST['password']);//密码$query = 'select * from admin where (adminname = '{$adminname}' && password = '{$password}')';$result = $conn->query($query);if($result){//判断用户是否存在    $admin = $result->fetch_assoc();    $time = time();    $sql = 'update admin set login_time = '{$time}'';//把用户登录时间保存    $res=$conn->query($sql);    if ($res){        //把数据存进session中        $_SESSION['uid'] = $admin['id'];        $_SESSION['login_time'] = time();        header('location:index.php');//登录成功跳转    }}?>

6

//退出代码connect_error) {    die('连接失败: ' . $conn->connect_error);} $login_time = $_SESSION['login_time'];$logout_time = time();$line_time = $logout_time-$login_time;$sql = 'update admin set logout_time = '{$logout_time}',line_time='{$line_time}' where id = '{$_SESSION['uid']}'';$re = $conn->query($sql);if ($re) {    $_SESSION='';    echo('成功退出');        print_r($_SESSION);}?>

7

这里我只是把登录时间和退出时间相减(时间戳),没做其它处理,您可以根据需求自行修改在线时间

注意事项
1

注意数据库连接以及session问题

2

亲们看见就点赞、评论哦!!!

推荐信息