网站访问记录系统

公司之前的网站访问统计,客户不是很关心数据来源及分析,只希望有现在又多少人访问过首页,所以我们当时的解决方案是使用天堂计数器,第三方的。 免费的就是会有各种的折腾,还有到期时间,之后就要重新注册比较麻烦。 我想到SAE平台有 高并发Count服务,就自己做了一个,

使用thinkphp的Ip获取地址的api,需要导入库类@.ORG.IpLocation 建表的时候,考虑到数据量会比较大,而且查询基本是时间跨度不大, 采用了分表的设计,一年一张表,客户对于访问来源的不是很侧重,减少高并发与数据库交互,同一IP地址当天登陆的信息数据库只插入一次,Count增加。ajax返回访问次数,与当次访问的一些地理信息, 可以实现 欢迎来自镇江的游客 这样的功能。

目前这个 应用只支持单程序流量记录统计, 以后有空能做成共通的,类似天堂计数器一样的能页面嵌入js,支持多应用的功能。

`<?php

/**

  • 本页仅供测试 */ class IcountAction extends Action {

    protected function _initialize() { header("Content-Type:text/html; charset=utf-8"); }

    public function api(){ import("@.ORG.IpLocation"); $_table ='icount'.date('Y'); $icount = M($_table); $address=new Iplocation('UTFWry.dat');//新建一个IP查询对象 $ip = get_client_ip(); $location=$address->getlocation($ip);//省略时表示查询客户端IP.$location可以直接输出使用,键名如上
    //准备写入的数据 $data['ip'] = $ip; if($location != null){ $data['address'] = $location['country']; $data['area'] = $location['area']; } $data['OperationTime'] = date('Y-m-d H:i:s'); $isExist = $icount->where('OperationTime LIKE '. '"%'.date('Y-m-d').'%"')->find(); if($isExist==null) { $lastInsId = $icount->add($data); }

       //登录计数
     $c = new SaeCounter();
     if ($c->exists('countView')) {
         $c->incr('countView', 1);
     } else {
         $c->create('countView');
         $c->incr('countView', 1);
     } 
     $this->ajaxReturn($data, $c->get('countView'), 1);     
    

    }

} ?>`

转载于:https://my.oschina.net/zhouyuan/blog/101158

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值