3 1640 2021-02-13 11:59:20
收藏统计网站访问IP以及在线的人数,推荐使用成熟的统计程序来完成,下面这篇适合局域网或小型dome使用,实现简单小巧的php统计在线人数和IP功能。
首先我们需要开启php依赖putenv()函数模块,找到php.ini文件,搜索putenv关键字,删除即可。
如果你使用的宝塔面板环境,点击左侧软件管理,找到php,然后设置->禁用函数。
isable_functions = passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
删除putenv,然后重启php即可。
下面是PHP统计函数代码
在count.php同目录下创建文件:count,temp,online。新建文本文档count.txt,去掉扩展名即为count了;
linux系统中请设置文件属性为:777。
文件count.php代码,用到了php函数--explode、isset、empty及sprintf等:
<?php $file = "count"; // 记数文件名称 $startno = "1000"; // 起始数值 $tempfile = "temp"; $t_now = time(); $t_array = getdate($t_now); $day = $t_array['mday']; $mon = $t_array['mon']; $year = $t_array['year']; if (file_exists("$file")) { $count_info=file("$file"); $c_info = explode(",", $count_info[0]); $total_c=$c_info[0]; $yesterday_c=$c_info[1]; $today_c=$c_info[2]; $lastday=$c_info[3]; } else { $total_c="$startno"; $yesterday_c="0"; $today_c="0"; $lastday="0"; } if ( !isset($HTTP_COOKIE_VARS["countcookie"]) || $HTTP_COOKIE_VARS["countcookie"] != $day) { $your_c=1; $lockfile=fopen("temp","a"); flock($lockfile,3); putenv('TZ=JST-9'); $t_array2 = getdate($t_now-24*3600); $day2=$t_array2['mday']; $mon2=$t_array2['mon']; $year2=$t_array2['year']; $today = "$year-$mon-$day"; $yesterday = "$year2-$mon2-$day2"; if ($today != $lastday) { if ($yesterday != $lastday) $yesterday_c = "0"; else $yesterday_c = $today_c; $today_c = 0; $lastday = $today; } $total_c++; $today_c++; $total_c = sprintf("%06d", $total_c); $today_c = sprintf("%06d", $today_c); $yesterday_c = sprintf("%06d", $yesterday_c); setcookie("countcookie","$day",$t_now+43200); $fp=fopen("$file","w"); fputs($fp, "$total_c,$yesterday_c,$today_c,$lastday"); fclose($fp); fclose($lockfile); } if ( empty( $your_c ) ) $your_c = 1; setcookie("yourcount",$your_c+1,$t_now+43200); $your_c = sprintf("%06d", $your_c); //////////////////////////开始统计在线 $filename="online"; $onlinetime=600; //同一IP在线时间,单位:秒 $online_id=file($filename); $total_online=count($online_id); $ip=getenv("REMOTE_ADDR"); $nowtime=time(); for($i=0;$i<$total_online;$i++){ $oldip=explode("||",$online_id[$i]); $hasonlinetime=$nowtime-$oldip[0]; if($hasonlinetime<$onlinetime and $ip!=$oldip[1]) $nowonline[]=$online_id[$i]; } $nowonline[]=$nowtime."||".$ip."||"; $total_online=count($nowonline); $fp=fopen($filename,"w"); rewind($fp); for($i=0;$i<$total_online;$i++){ fputs($fp,$nowonline[$i]); fputs($fp,"n"); } fclose($fp); if($total_online==0)$total_online=1; $total_online = sprintf("%06d", $total_online); /////////////////////////////////////////////////////// echo "document.write("·总IP访问:".$total_c."");"; echo "document.write("<br>");"; echo "document.write("·昨日访问:".$yesterday_c."");"; echo "document.write("<br>");"; echo "document.write("今日IP:".$today_c."");"; echo "document.write(" ");"; echo "document.write("·您 访 问:".$your_c."");"; echo "document.write("<br>");"; echo "document.write("当前在线:".$total_online."");"; exit; ?>
本文地址:https://xzo.com.cn/develop/php/542.html
如果您认可我们的分享,有意与我们合作开展帝国cms网站建设与开发业务或插件定制,请联系右侧在线客服。我们能给您的,就是高质量的模板与售后。
标注了信息来源为下载鸥的文章皆为原创,如果是转载的优质文章,我们也都标注了出处。如果您喜欢我们的文章,请按照下载鸥所标注的文章出处进行标注,谢谢您的配合。
PHP是一种服务器端、跨平台、html嵌入式的脚本语言,其功能十分强大、入门简单。在过去,民间一直有说法称“PHP是最好的编程语言”,是PHP开发者对自身所使用语言的肯定。
PHP曾是最主流的网站web开发语言之一,现在也依然十分流行。
在日常文章的发表过程中,由于需要引入一些外部链接达到更好的效果与体验。但...
互联网上每天都有很多爬虫到处爬取内容,你可能不知道他们是干嘛的,但其中肯定...
今天遇到这样一个问题:php启用了session,经过测试也发现session生效了。但在a...
我们使用php开发网站的时候,经常会需要调试确保功能正常。而如果功能出现异...
通俗的说,现在有结果A B C D E,每个结果代表不同的意义,此时我们可以用if else...
php分割中文字符,之前计划的是可用于搜索结果、tag结果关键词标红。但在实际...
isset() 函数用于检测变量是否已设置并且非 NULL。如果已经使用 unset() 释...
PHP_EOL是一个相当好用的函数,可自动适配多种换行格式,在实际的应用中体验非...
下载鸥开发了这款帝国cms封禁ip插件,自动记录访问情况,让我们可以更快的识别...
通过本插件,可以实现帝国cms网站对接百度云api实现图像无损放大的功能。经过...
采集站的必备资源是自动审核,要做到日收录也离不开定时发布。而本插件的自动...
一直没看到好用的帝国cms在线考试插件,所以自己开发了一款。在线考试插件用...
百度开放了系列AI功能api如图像上色、图像去雾、图像修复、无损放大、清晰...
帝国cms 对接纳米数据(www.nami.com)接口,本接口主要接收、整理足球比赛实时数...
通过本插件,可以实现帝国cms网站对接百度云api实现图像去雾的功能。经过实际...
帝国CMS自带的搜索功能虽然强大,但也有很强的局限性 -- 必须关键词完全匹配...