用淘宝的API客户端写了一个统计代码,因为用Google 的统计的话,有时候Google被封了或者访问有问题,国内就会大幅度拖慢网站的访问速度,于是,就自己写了一个。需要服务器支持MySQLi。这是第一次使用MySQLi感觉这个方法比原来的mysql函数好用多了,以后要学习一下更加高级的方法。
文件如下有tj.js , tj.php ,还有 initial.php
这个是tj.js 需要网站支持jQuery,本人似乎是有点jQuery依赖症,特别喜欢使用jQuery,记得江url改一下。
$(document).ready(function(){
$.ajax({
type: "POST",
url: "https://masterchan.me/tj.php",
data: {
p: window.location.href
}
});
});
这个是tj.php,需要服务器支持curl,连接淘宝网的API获取数据。可能要修改一下initial.php文件的位置。
<?php
if (isset($_POST['p'])) {
require('s/initial.php');
$ip = $_SERVER['REMOTE_ADDR'];
$request = __init_url__.$ip;
$data = json_decode(get_url_content($request));
if ( $data->code == 0 ) {
$connection = create_db_connection();
$useragent = mysqli_real_escape_string($connection,$_SERVER['HTTP_USER_AGENT']);
$url = mysqli_real_escape_string($connection,$_POST['p']);
$db_name = __db_name__;
$table_name = __db_table__;
$info = $data->data;
$sql = "INSERT INTO `$db_name`.`$table_name` (`id`, `page`, `ip`, `visittime`, `useragent`, `country`, `area`, `region`, `city`, `isp`, `isp_id`) VALUES (NULL, '$url', '$ip', NOW(), '$useragent', '$info->country','$info->area', '$info->region', '$info->city', '$info->isp', '$info->isp_id');";
mysqli_query($connection,$sql);
destory_db_connection($connection);
}
}
?>
initial.php 的文件,这个是我用作很多数据库连接的模版文件,非常好用。
<?php
define('__db_host__', 'localhost'); //数据库主机
define('__db_username__', 'analytics'); //用户名
define('__db_password__', 'xxxxxxxxxxxxxxxx'); //数据库连接密码
define('__db_name__', 'analytics'); //数据库名称
define('__db_table__', 'masterchan-me'); //表格名称
define('__db_charset__', 'utf8');
define('__db_sort_charset__', 'utf8_general_ci');
define('__init_url__', 'http://ip.taobao.com/service/getIpInfo.php?ip=');
function create_db_connection(){
$handle = mysqli_connect(__db_host__,__db_username__,__db_password__);
mysqli_select_db($handle, __db_name__);
mysqli_query($handle,'SET NAMES '.__db_charset__);
mysqli_query($handle,'SET CHARACTER SET '.__db_charset__);
mysqli_query($handle,'SET COLLATION_CONNECTION=`'.__db_sort_charset__.'`');
return $handle;
}
function destory_db_connection($handle){
mysqli_close($handle);
}
function get_url_content($url){
$thread = curl_init($url);
curl_setopt($thread, CURLOPT_HEADER, 0);
curl_setopt($thread, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($thread, CURLOPT_CONNECTTIMEOUT, 5);
$content = curl_exec($thread);
curl_close($thread);
return $content;
}
?>
