Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在cookies中跟踪访问计数_Php_Drupal_Cookies_Drupal 7 - Fatal编程技术网

Php 在cookies中跟踪访问计数

Php 在cookies中跟踪访问计数,php,drupal,cookies,drupal-7,Php,Drupal,Cookies,Drupal 7,我想记录每个匿名用户的访问次数。我希望能够显示特殊信息,例如,当他们第10次访问该网站时 在这种情况下,增加cookie变量就可以了。如何确定新会话何时开始 我使用的是Drupal 7,但似乎没有一个可用的模块。也许你可以使用统计模块,比如。如果不适合您的需要,您可以创建一个。您可以将以下代码转换为自己的模块 $today = date('l, F j, Y'); $timestamp = date('g:i A'); if (strcmp($_COOKIE["LAST_VISIT"], '')

我想记录每个匿名用户的访问次数。我希望能够显示特殊信息,例如,当他们第10次访问该网站时

在这种情况下,增加cookie变量就可以了。如何确定新会话何时开始


我使用的是Drupal 7,但似乎没有一个可用的模块。

也许你可以使用统计模块,比如。如果不适合您的需要,您可以创建一个。您可以将以下代码转换为自己的模块

$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);

使用Cookie系统的问题是,人们可以轻松删除Cookie,许多程序会在一天、一周、一个月等后自动删除Cookie。您可以使用个人IP地址,并在XML文件或数据库中跟踪它,但请注意,这也会发生变化

对于这样的系统,最好的解决方案是让用户登录到您的系统,并且只跟踪登录的用户。在这种情况下,您可以跟踪已登录人员的IP地址及其访问时间。您也可以同时实现cookie和数据库系统,但是对于较小的站点来说,这种复杂的东西可能不可行

如果您打算坚持使用cookie,您可以在用户每次访问您的站点时创建一个带有时间戳的全新cookie,并计算cookie的数量,或者创建一个cookie,每次数据戳发生显著变化时都递增(表示再次访问)。你可以这样做,如果一个人在5分钟内访问了两次,那么它只算作一次访问,以及其他类似的技术性的东西


如果您想使用数据库,只需在页脚中包含一个文件,记录用户的IP地址(或者更好的用户名)和访问时间戳。

以后,请标记一个mod来迁移您的问题,请不要交叉发布。谢谢