如何使用Cookies来计算PHP的访问次数?

时间:2018-08-07 15:41:57

标签: php html cookies session-cookies

我是PHP的新手,在使用Cookies时遇到了很多麻烦! 因此,我尝试使用一个cookie,该cookie会在1分钟的生命周期内记录页面已加载的次数。一旦达到其生存期,就需要将其重置,并且计数器应回到0。

到目前为止,这里是我所拥有的: 在Php文件的顶部

<?php
  session_start();
  $_SESSION['user_start'] = time();
  $cookie_name = "counter";
  $cookie_value = 0;
  setcookie($cookie_name, $cookie_value); 
?>
<html>
<body>
<?php
if (time() - $_SESSION['user_start'] < 60) {
  $counter = $_COOKIE[$cookie_name] +1; 
  setcookie($cookie_name, $counter);
  echo "Value is: " . $_COOKIE[$cookie_name];
}
else{
  unset($_SESSION['user_start']);
  unset($_COOKIE[$cookie_name]);
}
?>

1 个答案:

答案 0 :(得分:-1)

有点奇怪-但这应该可以解决问题,我将 counter 值和 expiry 时间都存储在JSON格式的cookie中。这样,您可以在保持初始到期时间(例如初始请求后1分钟)的同时递增计数器。

<?php
$counter = 0;
$expires = time()+60;

if(isset($_COOKIE['counter'])) {    
    $data = json_decode($_COOKIE['counter']);
    $counter = ++$data->counter;
    $expires = $data->expires;
}

$jsonData = json_encode(['counter' => $counter, 'expires' => $expires]);
setcookie("counter", $jsonData, $expires);

echo $counter;