最新公告
  • 欢迎加入中国站长资源网团队,精品资源持续增加!立即加入我们
  • php统计在线人数和IP代码

    统计网站访问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("&nbsp;");";
    echo "document.write("·您 访 问:".$your_c."");";
    echo "document.write("<br>");";
    echo "document.write("当前在线:".$total_online."");";
    exit;
    ?>

    如果遇到资源下载失效,请复制当前文章链接类型客服处理!
    中国站长资源网 » php统计在线人数和IP代码

    常见问题FAQ

    【点击查看】免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    【点击查看】提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    【点击查看】开通终身至尊下载源码 “不完整” 或 “不能用” 怎么办?
    非常抱歉,你有权利告诉本站,但是本站有选择处理或者不处理的权力,如无法接受请不要开通本站会员。
    【点击查看】开通终身会员能下载全站资源码?
    可以100%下载全站源码资源的,除部分失效资源,失效的可以联系客服尝试恢复。

    发表评论