1

当用户打开页面并刷新它时,我有下面的代码插入,我想通过单击页面内移动到另一个页面的任何链接或单击 X 来更新访问表集 leaveTime=$time 当用户离开页面时或按 ALT+F4 ......这是我的尝试:

session_start();
if (!isset($_SESSION["visits"]))
    $_SESSION["visits"] = 0;
    $_SESSION["visits"] = $_SESSION["visits"] + 1;
if ($_SESSION["visits"] > 1){
    mysql_query("INSERT INTO najd_visit( visit_userId, visit_staticId, visit_page, visit_enterTime,visit_refreshTime)VALUES ('$userId', '$Sid', '$title','$Stime' ,'$date') ");
    echo "You hit the refresh button!";}else{
    mysql_query("INSERT INTO najd_visit( visit_userId, visit_staticId, visit_page, visit_enterTime)VALUES ('$userId', '$Sid', '$title', '$date') ");
    echo "This is my site".$_SESSION["visits"];
}
4

4 回答 4

2

无法注册离开页面的用户。您可以根据用户的活动进行估计,但仅此而已。

但是,您可以做的是检测用户来自哪里。如果用户在 1:00 从 index.php 开始并在 1:02 到达 page2.php,您可以检查 $_SERVER-superglobal 以检测用户来自 index.php 并更新该特定统计信息。

但除此之外,知道用户何时离开您的页面并不是很有趣。

于 2012-06-09T12:48:13.933 回答
2

PHP 无法检测到访问者何时离开您的网站。

但是,您可以使用 JavaScript 检测页面unload事件,然后快速发出 AJAX 请求来记录离开……这并不总是有效,因为网络延迟可能会导致您的脚本在浏览器开始加载时被“跳过”下一页。

要检测站点偏离您自己页面上的链接,您可以让所有链接转到服务器上的一个小型重定向脚本;这记录了访问者离开另一个站点。

在所有其他情况下,您只需假设 5 分钟左右后访问的最后一页是“出发页”。

于 2012-06-09T12:48:37.273 回答
0

要检查用户何时离开,您可以执行此操作。

在客户端

每 10 秒对http://www.yousite.com/update_user.php?userID= *user_id*执行一次 ajax 请求。

该脚本将更新您的 mysql 数据库上的一行,它应该看起来像这样。

UPDATE online_user SET last_check=NOW() WHERE user_id=$_GET['userID']

在服务器端

每分钟启动一个 cron。它将检查女巫用户没有更新他们的行(让我们花 20 秒来确保安全)

SELECT user_id FROM online_user WHERE last_check <= *NOW() - 20 seconds*

然后,您可以在任何地方编辑行,只要您想在他的“last_check”和 +10 秒之间说出与 user_id 相对应的用户,如果需要精确,您可以每 1 或 2 秒执行一次请求

于 2012-06-09T13:12:36.453 回答
0

如果您只想创建访问计数器,请参阅本教程,它非常适合您 http://talkerscode.com/webtricks/create-a-simple-pageviews-counter-using-php-and-mysql.php

首先你必须创建数据库

CREATE TABLE `pageview` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`page` text NOT NULL,
`userip` text NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1

// 全视图

CREATE TABLE `totalview` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`page` text NOT NULL,
`totalvisit` text NOT NULL,
 PRIMARY KEY (`id`)
 ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1

每当新访问者访问网页时更新表格

$user_ip=$_SERVER['REMOTE_ADDR'];

$check_ip = mysql_query("select userip from pageview where page='yourpage' and userip='$user_ip'");
if(mysql_num_rows($check_ip)>=1)
{

}
else
{
  $insertview = mysql_query("insert into pageview values('','yourpage','$user_ip')");

  $updateview = mysql_query("update totalview set totalvisit = totalvisit+1 where page='yourpage' ");
}

就这样

于 2016-03-08T15:28:23.967 回答