php实现从本网站每天出站连接向目标网站贡献的IP和PV的统计
存入数据库:<?php
header("Content-type: text/html; charset=utf-8");
//echo $_COOKIE['iptag'];
date_default_timezone_set('PRC');
//目标网站url
$aimUrl = $_GET['r'];
//来源网站
$sourceUrl = $_GET['wangzhan'];
//设置cookie标识符,目的是防止当产生cookie后用户在点击其他链接,造成的统计不精确
$cookieTag = $aimUrl.$sourceUrl;
//明天零时的时间戳
$nonce_time = strtotime(date('Ymd')+1);
setcookie('iptag',$cookieTag,$nonce_time);
//获得当前时间,用于数据库查询
$time = date('Y-m-d');
$db = new MySQLi('localhost','a','acyr','www_a_com');
if ($mysqli->connect_errno) {
die('数据库连失败:'.$mysqli->connect_error);
}
$db->query('set names utf8');
$sql = "select * from dede_tongji where sourceUrl='$sourceUrl' and aimUrl='$aimUrl' and date='$time'";
$res = $db->query($sql); www.zzzyk.com
//首先查看现在数据库这一天有没有这个链接的数据,如果没有则创建,否则根据cookie值,来判断IP和Pv的分别增加多少。
if ( $row = $res->fetch_assoc() ){
$pvSum = $row['pvSum'] + 1;
if( $_COOKIE['iptag'] == $cookieTag ){
$sql = "update dede_tongji set pvSum = '$pvSum' where sourceUrl='$sourceUrl' and aimUrl='$aimUrl' and date='$time' ";
$db->query($sql);
//否则只是ip 和pv 增加一
}else{
$ipSum = $row['ipSum'] + 1;
$sql = "update dede_tongji set ipSum = '$ipSum',pvSum = '$pvSum' where sourceUrl='$sourceUrl' and aimUrl='$aimUrl' and date='$time' ";
$db->query($sql);
}
}else{
//数据库中没有则添加一条新数据
$sql = "insert into dede_tongji (sourceUrl,aimUrl,ipSum,pvSum,date) values ('$sourceUrl','$aimUrl',1,1,'$time')";
if( $db->query($sql)){
}else{
$db->error;
}
}
//利用js实现跳转
echo "<script language='javascript'>location.href='".$aimUrl."'</script>";
?>
从数据库中查询,这里使用到了一个分页类在我的令一片博客里大家可以找到,关于这个分页类的用法 结合这个例子和分页类的成员函数可以很好的理解,主要是在进行数据库查询时sql语句带上 limit 限定条件就可以了,用到的分页类是:page.class.php
下面是从数据库中查询前台显示数据和分页类的使用,还有一些控制日期的js
<?php
header("Content-type: text/html; charset=utf-8");
date_default_timezone_set('PRC');
//引入分页类
require_once 'page.class.php';
//获取变量
$wangzhan = emptyempty($_GET['wangzhan']) ? '' : $_GET['wangzhan'];
//如果月份和日期小于10则加0 用于数据库日期匹配
$mm = $_GET['MM'];
$dd = $_GET['DD'];
if( $mm < 10 ){
$mm = '0'.$mm;
}
if( $dd < 10 ){
$dd = '0'.$dd;
}
$date = $_GET['YYYY'].'-'.$mm.'-'.$dd;
//echo $date;
//$time = date('Y-m-d');
//echo 'time:'.$time.'<br>';
//echo $date;
//exit();
//连接数据库
$db = new MySQLi('localhost','a','acyr','www_a_com');
if ($mysqli->connect_errno) {
die('数据库连失败:'.$mysqli->connect_error);
}
$db->query('set names utf8');
//如果现在的查询日期是当前日期,则全部输出且按日期排序
if($date==$time){
//获得这种情况下的总条数,用于分页显示(分页类要用到这个参数)
$sql = "select count(*) from dede_tongji where sourceUrl='$wangzhan' order by date desc";
$row = $db->query($sql)->fetch_row();
$allRows = $row[0]; //总条数
$pageList = new Page($allRows,2,4,array('pre'=>'上一页','next'=>'下一页'));
//$res = $db->query( "select * from dede_tongji where sourceUrl='$wangzhan' order by date desc {$pageList->limit()}" );
$sql = "select * from dede_tongji where sourceUrl='$wangzhan' order by date desc {$pageList->limit()}";
//echo $sql;
$res = $db->query($sql);
$resArr = array();
while( $row = $res->fetch_assoc()){
$resArr[] = $row;
}
$res->free_result();
<
补充:Web开发 , php ,
- 更多php疑问解答:
- php使用imagick将image图片转化为字符串模式
- php通过gd实现图片图片转换为字符图代码
- PHP把图片转base64代码,php把base64代码转换为图片并保存
- PHP把图片base64转换成图片并保存成文件
- wordpress问题<?php if(have_posts()) : ?>
- 建设一个搜索类网站php还是jsp,数据库那个好
- 没理由啊 php代码无法执行,貌似有语法错误。。。
- 关于PHP 和API 的一段代码不懂啊不懂,请高手指点! 这是淘宝API的
- php语言中,序列化到底在那里使用?它的优势是什么?劣势是什么?
- PHP函数等于或等于应该怎么表达
- 请教php高手,解决basename函数和mb_substr函数处理中文文件名称的解决方法,在上传文件时,总是出现乱码
- .NET,PHP,JAVA,JS优秀点分别是?
- 织梦cms 在环境监测的时候 wamp5 gd不支持 是为什么。;extension=php_gd2.dll这一句我删除了还是不显示?
- 我想学PHP。1.应安装什么编程工具? 2. 装LIUNX系统是装简易的还是?什么版本的?3.还应安装什么?
- <?php 和 <? 有什么区别