【发布时间】:2019-01-14 18:35:37
【问题描述】:
我是 PHP 新手,在使用 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。
-
cookies 存在于用户的机器上,所以每个用户都有自己的 cookie...你不会有一个聚合计数器,每个用户只会看到他们的次数已经在 cookie 生效时刷新了页面……这真的是你想要的吗?
-
我不确定我是否理解正确,所以你的意思是我应该这样做 $_COOKIE["counter"] = $cookie_name ?
-
您可以执行
$counter = isset($_COOKIE['counter']) ? ++$_COOKIE['counter'] : 0; setcookie("counter", $counter, time()+60);之类的操作 ...但问题是您每次重写 cookie 时都会重置到期时间。
标签: php html cookies session-cookies