我想跟踪每个匿名用户的访问次数。我希望能够显示特殊消息,例如当他们第10次访问该网站时。
在这种情况下,增加一个cookie变量就可以了。如何确定新会话何时开始?
我正在使用Drupal 7,但似乎没有可用的模块。
答案 0 :(得分:2)
可能您可以使用统计模块,例如Here。在不符合您需求的情况下,您可以创建一个。您可以将以下代码转换为您自己的模块。
$today = date('l, F j, Y');
$timestamp = date('g:i A');
if (strcmp($_COOKIE["LAST_VISIT"], '') == 0) {
$lasttime = "";
}
else {
$lasttime = $_COOKIE["LAST_VISIT"];
}
$LAST_VISIT = $today . " at " . $timestamp;
// Set the "LAST_VISIT" cookie with date/time, with expiration for 2 full weeks.
setcookie ("LAST_VISIT", $LAST_VISIT, time() + 3600*24*14);
if ($_COOKIE["VISIT_NUMBER"] == 0) {
$visitcount = 0;
}
else {
$visitcount = $_COOKIE[VISIT_NUMBER];
}
// Set the "VISIT_NUMBER" cookie with count, with expiration, lets say for 2 full weeks.
setcookie("VISIT_NUMBER",1 + $visitcount, time() + 3600*24*14);
答案 1 :(得分:1)
使用Cookie系统的问题是人们可以轻松删除Cookie,许多程序会在一天,一周,一个月等后自动删除Cookie。您可以使用人员IP地址代替并跟踪它XML文件或数据库,但请注意,这也可以更改。
您对此类系统的最佳解决方案是让人们登录您的系统并仅跟踪登录的人员。在这种情况下,您可以跟踪登录的人员IP地址和时间他们的访问。您也可以同时使用cookie和数据库系统,但对于较小的站点来说,复杂的东西可能是不可行的。
如果您要坚持使用cookie,您可以在每次用户访问您的网站时创建一个包含时间戳的全新cookie并计算Cookie的数量,或者您可以创建一个cookie,每次数据广播更改时该cookie都会增加戏剧性地(发出另一次访问)。你可以这样做,如果这个人在5分钟内访问两次,它只算作1次访问,以及其他类似的技术。
如果您想使用数据库,只需在页脚中包含一个文件,该文件记录人员的IP地址(或更好的用户名)以及他们访问的时间戳。