php:计算某人在一个网站上停留多长时间并将数字插入数据库?

标签 php mysql

您好,我不确定这怎么可能,但是是否有一个简单的代码会从用户访问我的网站的那一刻开始计数,我可以使用 header 标签来存储带有一些 php 代码的 session ,以说明页面何时打开accessed 设置一个时间并将时间存储在我的 mysql 表中并计算直到用户离开站点/ session 结束的那一刻,并根据计算的时间量计算结束时间?

我想在我的数据库中创建一个名为 session 的表,这样我就知道我的网站上有多少人,我知道有谷歌分析,但我想实时管理它,所以非常感谢任何帮助或指出正确的方向谢谢

// GET IP ADDRESS
 $sql = "INSERT INTO ptb_sessions (session_id, user_ip, session_start, session_end) VALUES (NULL, '" . $_SERVER['REMOTE_ADDR'] . "', now() '....');";
                mysql_query($sql, $connection);

最佳答案

根据我的经验,跟踪用户的最佳方法是结合使用 ajax 和 php。您应该在特定的时间间隔(比如说 60 秒)从 javascript 发送通知,您可以在 php 端更新用户当前登录您网站的时间的值。

示例代码:

index.html

<script type="application/x-javascript">
// js code in index.html

window.setInterval( function(){
    var xmlhttp;
    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.open("GET","background.php?ping=1",true);
    xmlhttp.send();
}, 60000 );
</script>

background.php

<?php
session_start();
// ... your database initialization here, so $connection will be valid variable ...

// background.php
// ur initialisation
$session_id = session_id();
$sessionEnd = date('Y-m-d h:i:s');
$sql = "INSERT INTO ptb_sessions (session_id, user_ip, session_start, session_end) VALUES ('$session_id', '" . $_SERVER['REMOTE_ADDR'] . "', now(), '$sessionEnd') ON DUPLICATE KEY UPDATE session_end = '$sessionEnd'";
mysql_query($sql, $connection);

?>

注意:后台脚本需要使用session_start();重复构造的 sql 将自动更新您的值 - 因此无需编写检查是否存在。

关于php:计算某人在一个网站上停留多长时间并将数字插入数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16331674/

相关文章:

php - 在 PHP 中连接 ECHO 语法

javascript - 我们应该何时或如何将参数传递给 URL?

php - Laravel 5 如何检查密码重置 token 是否已过期

mysql - 将以下 MySQL 查询转换为 codeigniter

MySQL 特殊字符的列计数无效

mysql - MySQL查询缓存何时被刷新?

ruby 脚本从系统命令输入提示命令

php - 在 PHP PDO execute() 上做什么返回 false?

sql - 执行 count() 计算会减慢我的 mysql 查询速度吗?

javascript - Freichat 聊天不显示他/她的姓名 谁登录了?