文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

php 怎么实现访客次数

2017-02-25 10:44

关注

本文操作环境:Windows7系统,PHP7.4版,Dell G3电脑。

php 怎么实现访客次数?

PHP准确的实现页面访问统计次数

需要两个数据库表

①、IP记录表

create table ip (ipid int(11) NOT NULL default '',ipdata varchar(16) NOT NULL default '',iptime varchar(30) NOT NULL default '', primary key(ipid));

注:ipdata为记录的访问者的ip,iptime为记录的该ip访问

②、统计次数统计表

create table count (todayipcount int(11) NOT NULL default '',allipcount int(11) NOT NULL default '',day varchar(2) NOT NULL  default '');
insert into count (todayipcount,allipcount,day) values ('0','0','0');

实现方法

在你的要进行统计次数的页面上放如下代码:

$realip=getip();
modifyipcount($realip);

getip()函数的代码为:

function getip()
{
        if (isset($_SERVER)) 
        {
                if (isset($_SERVER[HTTP_X_FORWARDED_FOR]) && strcasecmp($_SERVER[HTTP_X_FORWARDED_FOR], "unknown"))//代理
                {
                        $realip = $_SERVER[HTTP_X_FORWARDED_FOR];
                } 
                elseif(isset($_SERVER[HTTP_CLIENT_IP]) && strcasecmp($_SERVER[HTTP_CLIENT_IP], "unknown"))
                {
                        $realip = $_SERVER[HTTP_CLIENT_IP];
                } 
                elseif(isset($_SERVER[REMOTE_ADDR]) && strcasecmp($_SERVER[REMOTE_ADDR], "unknown"))
                {
                        $realip = $_SERVER[REMOTE_ADDR];
                } 
                else
                {
                        $realip = 'unknown';
                }
        } 
        else
        {
                if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
                {
                        $realip = getenv("HTTP_X_FORWARDED_FOR");
                }
                elseif(getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
                {
                        $realip = getenv("HTTP_CLIENT_IP");
                } 
                elseif(getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
                {
                        $realip = getenv("REMOTE_ADDR");
                } 
                else
                {
                        $realip = 'unknown';
                }
        } 
        return $realip;
}

注:此函数代码网上到处都有

modifyipcount()函数的代码为:

function modifyipcount($ip)
{
        <-----------------------数据库的连接省略------------------------->
        $query="SELECT * FROM ip where ipdata='".$ip."'";
        $result=mysql_query($query);
        $row=mysql_fetch_array($result);
        $iptime=time();
        $day=date('j');
        if(!$row)
        {
                $query="INSERT INTO ip (ipdata,iptime) VALUES ('".$ip."','".$iptime."')";
                mysql_query($query);
                $query="SELECT day,todayipcount,allipcount FROM count";
                $result=mysql_query($query);
                $row=mysql_fetch_array($result);
                $allipcount=$row['allipcount']+1;
                $todayipcount=$row['todayipcount']+1;
                if($day==$row['day'])
                {
                        $query="UPDATE count SET allipcount='".$allipcount."',todayipcount='".$todayipcount."'";
                }
                else
                {
                        $query="UPDATE count SET allipcount='".$allipcount."',day='".$day."',todayipcount='1'";
                }
                 mysql_query($query);
        }
        else
        {
                $query="SELECT iptime FROM ip WHERE ipdata='".$ip."'";
                $result=mysql_query($query);
                $row=mysql_fetch_array($result);
                $query="SELECT day,todayipcount,allipcount FROM count";
                $result=mysql_query($query);
                $row1=mysql_fetch_array($result);
                if($iptime-$row['iptime']>86400)
                {
                                                $query="UPDATE ip SET iptime='".$iptime."' WHERE ipdata='".$ip."'";
                 mysql_query($query);
                        $allipcount=$row1['allipcount']+1;
                        if($day==$row1['day'])
                        {
                                $query="UPDATE count SET allipcount='".$allipcount."'";
                        }
                        else
                        {
                                $query="UPDATE count SET allipcount='".$allipcount."',day='".$day."',todayipcount='1'";
                        }
                         mysql_query($query);
                }
                if($day!=$row1['day'])
                {
                        $query="UPDATE count SET day='".$day."',todayipcount='1'";
                         mysql_query($query);
                }        
        }
}

注:这里我设置24小时内访问统计次数只加1

这样我们调用数据库表count中的todayipcount和allipcount就可以得到今日访问IP和总访问IP,个人觉得是很准确的,欢迎大家有不同意见提出。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯