您好,我不确定这怎么可能,但是是否有一个简单的代码会从用户访问我的网站的那一刻开始计数,我可以使用 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/