2

我已经为此工作了一段时间。制作了一个 PHP 计数器,用于获取前端页面上的视图,并在后端(cms 等)页面上显示视图。

index.php 代码:

<?php 
  function get_hits() {
    session_start();
    if(isset($_SESSION['views'])) {
      $_SESSION['views'] = $_SESSION['views']+ 1;
    } else {
      $_SESSION['views'] = 1;
    }
  }
?>

display_hits.php 代码:

<?php 
  function display_hits() {
    session_start();
    if(isset($_SESSION['views'])) {
      $_SESSION['views'] = $_SESSION['views'];
    } else {
      $_SESSION['views'] = 1;
    }
    echo "Total Page Views Since Browser Close = ". $_SESSION['views'];
  }
?>
<?php display_hits(); ?>

主要是我希望计数器停留 7 天然后重置。不知道该怎么做...我知道我应该使用 setcookie(); 不知何故。

提前致谢 :)

4

2 回答 2

1

这是一个函数 setcookie,它需要一个名称、一个值和一个时间。(3600*24*7 = 7 天)

setcookie("pageview", $_SESSION['views'], time()+3600*24*7); 
于 2013-04-25T00:18:09.560 回答
0

这应该有效。

<?php 
  function get_hits() {
    session_start();
    if(isset($_SESSION['views'])) {
      $_SESSION['views'] = $_SESSION['views']+ 1;
      setcookie("counter", $_SESSION["views"], $_SESSION["days"]);
    } else {
      $_SESSION['views'] = 1;
      $_SESSION["days"] = time()+3600*24*7;
      setcookie("counter", $_SESSION["views"], time()+3600*24*7);
    }
  }
?>

你基本上用时间+ 7天存储另一个会话变量并将其存储在cookie中。每当更新计数器时,您都会使用新的计数器值和初始时间/日期更新该 cookie

丁斯

于 2013-04-25T00:16:07.903 回答