我是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]);
}
?>
答案 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;