十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
先给储存相应文章的数据表增加一个记录访问量的字段。
创新互联建站科技有限公司专业互联网基础服务商,为您提供遂宁托管服务器,高防主机,成都IDC机房托管,成都主机托管等互联网服务。
可以每访问一次,字段数量加一,但是这样会不准确,因为只要刷新一下,就会记录一下。
为了防止上面的情况发生,可以记录访问者的IP地址,重复的IP地址访问,只记录一次。
但是,一个IP地址,只记录一次,也有问题,比如,一个局域网,多个访问者,共用一个IP地址,这样也会记录不准确。所以最好,一个IP地址一定时间内访问记录一次。这样相对好一点。
不过,即使记录IP地址,但是也有可能有恶意的用户通过切换IP,或者通过刷票软件来刷访问量。
?php
$ip = $_SERVER['REMOTE_ADDR'];
//循环对比数据表中储存的IP,如果IP存在,不再记录
$query = mysql_query("select * contetns where ip = '".$ip."'");
if(mysql_num_rows($query) 0){
//IP存在
}else{
//记录访问量
}
?
文/搬砖家(简书作者)
原文链接:
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
那就给你个简单的吧,就只记录用户浏览器 session_id 的。把代码加入你的首页 PHP文档 即可
?php
session_start();
$log = 'log.txt';
if(!$handle = fopen($log,"a+")){ echo '日志文件打开失败'; exit(); }
if(!fwrite($handle,session_id().chr(13))){ echo '数据写入失败'; exit(); }
fclose($handle);
$file = file_get_contents($log);
$content = explode(chr(13),$file);
echo "本页被访问次数: b".(count($content)-1)." /b";
?
如果你不需要记录每次访问的详细信息,可以不用记录每一次访问,那样数据库会非常庞大,而且统计也会很慢。
简单的方法是就是只要一条记录,用四个字段分别累计本日、本周、本月、本年、总共的访问数,每次访问的时侯对这些字段加1,另外一个字段记录最后一次更新的日期,如果最后更新日期不是本日,就在加1前把本日字段设置为0,本周、本月、本年字段类似处理即可。
可以提供简单的方法:(基于你用的是tp,对于做cache缓存也不影响统计,毕竟是访问了控制器方法)
第一:当访问这个页面的时候,对应的有控制器,在控制器中做一个操作,每被访问这个页面一次给数据库那个字段加1(这个不精准)
第二:获取访问页面人的ip地址,在数据库存记录,每此访问此页面也就是控制器 就做同样的操作,前提是判断这个人的ip是否存在,存在证明已访问过。(稍微精确点)
当然还有不少其他的方法,这里是比较简单的。希望可以帮助到