我目前有以下代码:
<?php
session_start();
if (!isset($_SESSION['views'])) {
$_SESSION['views'] = 0;
}
$_SESSION['views'] = $_SESSION['views']+1;
if ($_SESSION['views'] > 100) {
Execute Code
}
?>
我正在尝试这样,在100次网页浏览后,页面内容会发生变化。
此代码的问题在于它不会以相同的方式对每个用户起作用。它对每个访问者都是单独计算而不是全局计算。
有没有办法实现这个目标?
答案 0 :(得分:0)
为每个用户存储$_SESSION
(不是整个应用程序),因此您应该使用数据库或文本文件来存储计数器。
答案 1 :(得分: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
}
答案 2 :(得分:0)
$counter = file_get_contents("counter.txt");
$counter++;
file_put_contents("counter.txt", $counter);
if ($counter > 100){
print("yey");
}
答案 3 :(得分:0)
会话本身就是用户群,因为它本质上是cookie的更大版本。 如果没有太多连接,最简单,最快捷的方法就是使用简单的mysql DB 连接然后更新给定日期的访问计数器
UPDATE visit SET visit_counter = visit_counter+1 WHERE date = '$today';
其中$ today = date(“Y-m-d”);
只是一个例子(访问是表格 - visit_counter是visit_counter列)