0

我目前有以下代码:

<?php
session_start();

if (!isset($_SESSION['views'])) { 
$_SESSION['views'] = 0;
}

$_SESSION['views'] = $_SESSION['views']+1;

if ($_SESSION['views'] > 100) {
Execute Code
}

?>

我正在尝试在 100 次页面浏览后页面的内容发生变化。

这段代码的问题在于它对每个用户的工作方式都不同。它对所有访问者单独计数,而不是全局计数。

有没有办法可以做到这一点?

4

4 回答 4

0
$counter = file_get_contents("counter.txt");
$counter++;
file_put_contents("counter.txt", $counter);

if ($counter > 100){
    print("yey");
}
于 2013-07-16T14:06:14.550 回答
0

A$_SESSION是为每个用户存储的(不是为整个应用程序存储的),因此您应该使用数据库或文本文件来存储计数器。

于 2013-07-16T14:00:12.103 回答
0

$_SESSION允许您存储每个用户的信息,而不是全局存储。

最简单的方法是将视图数量存储在文件中,代码如下:

// read previous count
$filename = 'hitcount.txt';
$handle = fopen($filename, 'r');
$views = trim(fgets($handle)) + 1; // read and increment for current view.
fclose($handle);

$handle = fopen($filename, 'w');
fwrite($handle, $views); // replace previous count
fclose($handle);

if($views > 100){
// do some stuff
}
于 2013-07-16T14:04:13.380 回答
0

正如Pieter,Rene所提到的

会话是用户群,本质上是 cookie 的更大版本。如果您没有太多连接,最简单和最快的方法是连接一个简单的 mysql DB,然后更新给定日期的访问计数器

UPDATE visit SET visit_counter = visit_counter+1 WHERE date = '$today';

其中 $today = date("Ymd");

只是一个例子(visit 是表 - visit_counter 是 visit_counter 列)

于 2013-07-16T14:06:17.057 回答