Scripts
Counter/Tracker met GD
Dit script houd verschillende dingen bij van jouw bezoekers. Je moet maar 3 dingen doen voor het te doen werken: 1. Voeg deze querie uit: Zorg er zeker voor dat juist het zelfde doet !! 2. Geef je database gegeven inhet bestad config.php 3. Zorgen dat je de images download voor de counter: http://users.telenet.be/source/img.zip
countertracker-met-gd
//----------------
//counter.php
//----------------
<?php
include('config.php');
mysql_connect($host,$user,$pass);
mysql_select_db($db);
//Language
$ccodes = array (
"ad" => "Andorra",
"ae" => "United Arab Emirates",
"af" => "Afghanistan",
"ag" => "Antigua en Barbuda",
"ai" => "Anguilla",
"al" => "Albania",
"am" => "Armenië",
"an" => "Dutch Antilles",
"ao" => "Angola",
"aq" => "Antartica",
"ar" => "Argentina",
"as" => "American Samoa",
"at" => "Austria",
"au" => "Australia",
"aw" => "Aruba",
"az" => "Azerbaijan",
"ba" => "Bosnia Herzegovina",
"bb" => "Barbados",
"bd" => "Bangladesh",
"be" => "Belgium",
"bf" => "Burkina Faso",
"bg" => "Bulgarijë",
"bh" => "Bahrain",
"bi" => "Burundi",
"bj" => "Benin",
"bm" => "Bermuda",
"bn" => "Brunei Darussalam",
"bo" => "Bolivia",
"br" => "Brazil",
"bs" => "Bahamas",
"bt" => "Bhutan",
"bv" => "Bouvet Islands",
"bw" => "Botswana",
"by" => "Belarus",
"bz" => "Belize",
"ca" => "Canada",
"cc" => "Cocos (Keeling) Islands",
"cf" => "Central African Republic",
"cg" => "Kongo",
"ch" => "Zwitserland",
"ci" => "Cote DIvoire",
"ck" => "Cook Eilanden",
"cl" => "Chile",
"cm" => "Kameroen",
"cn" => "China",
"co" => "Colombië",
"cr" => "Costa Rica",
"cs" => "Czechoslovakia",
"cu" => "Cuba",
"cv" => "Cape Verde",
"cx" => "Kerstmis Eilnaden",
"cy" => "Cyprus",
"cz" => "Czech Republic",
"de" => "German country",
"dj" => "Djibouti",
"dk" => "Denmark",
"dm" => "Dominica",
"do" => "Dominicaanse Republic",
"dz" => "Algeria",
"ec" => "Ecuador",
"ee" => "Estonia",
"eg" => "Egypte",
"eh" => "West Sahara",
"er" => "Eritrea",
"es" => "Spanje",
"et" => "Ethiopia",
"fi" => "Finland",
"fj" => "Fiji",
"fk" => "Falkland Islands (Malvinas)",
"fm" => "Micronesia",
"fo" => "Faroe Eilanden",
"fr" => "France",
"fx" => "France (Metropolitan)",
"ga" => "Gabon",
"gb" => "Great Britanni (UK)",
"gd" => "Grenada",
"ge" => "Georgië",
"gf" => "Frans Guinea",
"gh" => "Ghana",
"gi" => "Gibraltar",
"gl" => "Greenland",
"gm" => "Gambia",
"gn" => "Guinea",
"gp" => "Guadeloupe",
"gq" => "Equatorial Guinea",
"gr" => "Greece",
"gs" => "S. Georgia and S. Sandwich Islands",
"gt" => "Guatemala",
"gu" => "Guam",
"gw" => "Guinea-Bissau",
"gy" => "Guyana",
"hk" => "Hong Kong",
"hm" => "Heard and McDonald Islands",
"hn" => "Honduras",
"hr" => "Kroatië",
"ht" => "Haiti",
"hu" => "Hongarijë",
"id" => "Indonesia",
"ie" => "Ireland",
"il" => "Israël",
"in" => "India",
"io" => "British Indian Ocean Territory",
"iq" => "Irak",
"ir" => "Iran",
"is" => "Ijsland",
"it" => "Italy",
"jm" => "Jamaica",
"jo" => "Jordanië",
"jp" => "Japan",
"ke" => "Kenya",
"kg" => "Kyrgyzstan",
"kh" => "Cambodia",
"ki" => "Kiribati",
"km" => "Comoros",
"kn" => "Saint Kitts and Nevis",
"kp" => "North Korea",
"kr" => "South Korea",
"kw" => "Kuwait",
"ky" => "Kaaiman Islands",
"kz" => "Kazakhstan",
"la" => "Laos",
"lb" => "Libanon",
"lc" => "Saint Lucia",
"li" => "Liechtenstein",
"lk" => "Sri Lanka",
"lr" => "Liberia",
"ls" => "Lesotho",
"lt" => "Lithuania",
"lu" => "Luxemburg",
"lv" => "Latvia",
"ly" => "Libya",
"ma" => "Morocco",
"mc" => "Monaco",
"md" => "Moldova",
"mg" => "Madagascar",
"mh" => "Marshall Islands",
"mk" => "Macedonia",
"ml" => "Mali",
"mm" => "Myanmar",
"mn" => "Mongolia",
"mo" => "Macau",
"mp" => "Northern Mariana Islands",
"mq" => "Martinique",
"mr" => "Mauritania",
"ms" => "Montserrat",
"mt" => "Malta",
"mu" => "Mauritius",
"mv" => "Maldives",
"mw" => "Malawi",
"mx" => "Mexico",
"my" => "Malaysia",
"mz" => "Mozambique",
"na" => "Namibia",
"nc" => "New Caledonia",
"ne" => "Niger",
"nf" => "Norfolk Island",
"ng" => "Nigeria",
"ni" => "Nicaragua",
"nl" => "The Netherlands",
"no" => "Norway",
"np" => "Nepal",
"nr" => "Nauru",
"nt" => "Neutral Zone",
"nu" => "Niue",
"nz" => "New Zealand (Aotearoa)",
"om" => "Oman",
"pa" => "Panama",
"pe" => "Peru",
"pf" => "French Polynesia",
"pg" => "Papua New Guinea",
"ph" => "Philippines",
"pk" => "Pakistan",
"pl" => "Poland",
"pm" => "St. Pierre en Miquelon",
"pn" => "Pitcairn",
"pr" => "Puerto Rico",
"pt" => "Portugal",
"pw" => "Palau",
"py" => "Paraguay",
"qa" => "Qatar",
"re" => "Reunion",
"ro" => "Romenië",
"ru" => "Rusland",
"rw" => "Rwanda",
"sa" => "Saudi Arabia",
"sb" => "Salamon Islands",
"sc" => "Seychelles",
"sd" => "Sudan",
"se" => "Sweden",
"sg" => "Singapore",
"sh" => "St. Helena",
"si" => "Slovenia",
"sj" => "Svalbard and Jan Mayen Islands",
"sk" => "Slovaakse Republiek",
"sl" => "Sierra Leone",
"sm" => "San Marino",
"sn" => "Senegal",
"so" => "Somalia",
"sr" => "Suriname",
"st" => "Sao Tome en Principe",
"su" => "USSR (Former)",
"sv" => "El Salvador",
"sy" => "Syria",
"sz" => "Swaziland",
"tc" => "Turkish and Caicos Islands",
"td" => "Chad",
"tf" => "French Southern Teretoriums",
"tg" => "Togo",
"th" => "Thailand",
"tj" => "Tajikistan",
"tk" => "Tokelau",
"tm" => "Turkmenistan",
"tn" => "Tunisia",
"to" => "Tonga",
"tp" => "Oost Timor",
"tr" => "Turkey",
"tt" => "Trinidad and Tobago",
"tv" => "Tuvalu",
"tw" => "Taiwan",
"tz" => "Tanzania",
"ua" => "Ukraine",
"ug" => "Uganda",
"uk" => "Vereningde Staten",
"um" => "US Minor Outlying Islands",
"us" => "United States",
"uy" => "Uruguay",
"uz" => "Uzbekistan",
"va" => "Vatican City State (Holy See)",
"vc" => "Saint Vincent and the Grenadines",
"ve" => "Venezuela",
"vg" => "Virgin Islands (British)",
"vi" => "Virgin Islands (US)",
"vn" => "Vietnam",
"vu" => "Vanuatu",
"wf" => "Wallis and Futuna Islands",
"ws" => "Samoa",
"ye" => "Yemen",
"yt" => "Mayotte",
"yu" => "Yugoslavia",
"za" => "South Africa",
"zm" => "Zambia",
"zr" => "Zaire",
"zw" => "Zimbabwe",
"com" => "US Commercial",
"edu" => "US Education",
"gov" => "US Goverment",
"int" => "Internationaal",
"mil" => "US army",
"net" => "Network",
"org" => "Non-Profit Organizatien",
"arpa" => "Old-Style Arpanet",
"nato" => "NATO Field"
);
function ccode($ip) {
global $ccodes;
$lang = strtok($_SERVER['HTTP_ACCEPT_LANGUAGE'],",");
$land=explode('-', $lang);
$land=$ccodes[$land[1]];
return $land;
}
function get_os() {
if(eregi("(win|windows)[ ]*((nt)*[ /]*([0-9]+(.?[0-9]+))*)", $_SERVER["HTTP_USER_AGENT"])) {
if(eregi("(win|windows)[ ](95)", $_SERVER["HTTP_USER_AGENT"])) {
return "Windows 95";
} elseif(eregi("(win|windows)[ ](9x)[ ](4.90)", $_SERVER["HTTP_USER_AGENT"])) {
return "Windows ME";
} elseif(eregi("(win|windows)[ ](98)", $_SERVER["HTTP_USER_AGENT"])) {
return "Windows 98";
} elseif(eregi("(win|windows)[ ](NT)", $_SERVER["HTTP_USER_AGENT"])) {
if(eregi("(win|windows)[ ](NT)[ ](5.1)", $_SERVER["HTTP_USER_AGENT"])) {
return "Windows XP";
} elseif(eregi("(win|windows)[ ](NT)[ ](5.0)", $_SERVER["HTTP_USER_AGENT"])) {
return "Windows 2000";
} else {
return "Windows NT";
}
} else {
return "Windows";
}
} elseif(stristr($_SERVER["HTTP_USER_AGENT"], "Linux")) {
return "Linux";
} elseif(stristr($_SERVER["HTTP_USER_AGENT"], "Unix")) {
return "Unix";
} elseif(stristr($_SERVER["HTTP_USER_AGENT"], "Mac")) {
return "MacOs";
} elseif(stristr($_SERVER["HTTP_USER_AGENT"], "PPC")) {
return "MacOs";
} elseif(stristr($_SERVER["HTTP_USER_AGENT"], "HP")) {
return "HP-UX";
} elseif(stristr($_SERVER["HTTP_USER_AGENT"], "SunOS")) {
return "Sun Solaris";
} else {
return "Unknow";
}
}
function browser() {
if (eregi("MSIE ([0-9]+\.[0-9]+)", $_SERVER["HTTP_USER_AGENT"], $regs)) {
$name = "Internet Explorer ";
$version = $regs[1];
} elseif (eregi("Opera ([0-9]+\.[0-9]+)", $_SERVER["HTTP_USER_AGENT"], $regs)) {
$name = "Opera ";
$version = $regs[1];
} elseif (eregi("Firefox/([0-9]+\.[0-9]+)", $_SERVER["HTTP_USER_AGENT"], $regs)) {
$name = "Firefox ";
$version = $regs[1];
}elseif (eregi("Mozilla/([0-9]+\.[0-9]+)", $_SERVER["HTTP_USER_AGENT"], $regs)) {
$name = "Netscape ";
$version = $regs[1];
}elseif (eregi("Opera/([0-9]+\.[0-9]+)", $_SERVER["HTTP_USER_AGENT"], $regs)) {
$name = "Opera ";
$version = $regs[1];
} else {
$name = $_SERVER["HTTP_USER_AGENT"];
$version = "";
}
return $name . $version;
}
function provider($IP) {
$a = gethostbyaddr($IP);
if($IP == $a) {
return "Unknow";
} else {
$s = explode(".",$a);
$provider='http://www.'.$s[(count($s)-2)].'.'.$s[(count($s)-1)];
$provider='<a href="'.$provider.'" target="_blank">'.ucfirst($s[(count($s)-2)]).'</a>';
return $provider;
}
}
$ip=$_SERVER['REMOTE_ADDR'];
$language=ccode($ip);
$os=get_os();
$browser=browser();
$domain=provider($ip);
putenv("TZ=Europe/Amsterdam");
$date=strtotime("now");
//Last guests
$sql="insert into last_guests set domain='".$domain."', country='".$language."', os='".$os."', browser='".$browser."', page='".$_GET['location']."', referrer='".$_GET['referrer']."', datum='".$date."'";
mysql_query($sql);
//today_ip
$sql='select * from today_ip where ip="'.$ip.'"';
$res=mysql_query($sql);
$unique=mysql_fetch_array($res);
$unique=$unique['ip'];
if($unique!=''){
mysql_query('update today_ip set hits=hits+1 where ip="'.$ip.'"');
}
else{
mysql_query('insert into today_ip set ip="'.$ip.'", hits="1"');
}
//Last Days
$dag=date('D');
$sql='select * from lastdays where day="'.$dag.'"';
$res=mysql_query($sql);
$unique2=mysql_fetch_array($res);
$unique2=$unique2['dag'];
if($unique2!=date('d')){
mysql_query('delete * from lastdays where day="'.$dag.'"');
}
if($unique2!=''){
mysql_query('update lastdays set hits=hits+1 where day="'.$dag.'"');
if($unique==''){
mysql_query('update lastdays set unique_hits=unique_hits+1 where day="'.$dag.'"');
}
}
else{
mysql_query('insert into lastdays set day="'.$dag.'", hits="1", unique_hits="1", dag="'.date('d').'"');
}
$sql='select * from browsers where browser="'.$browser.'"';
$res=mysql_query($sql);
$unique3=mysql_fetch_array($res);
if($unique3==''){
mysql_query('insert into browsers set browser="'.$browser.'", hits=1');
}
else{
mysql_query('update browsers set hits=hits+1 where browser="'.$browser.'"');
}
$sql='select * from os where os="'.$os.'"';
$res=mysql_query($sql);
$unique4=mysql_fetch_array($res);
if($unique4==''){
mysql_query('insert into os set os="'.$os.'", hits=1');
}
else{
mysql_query('update os set hits=hits+1 where os="'.$os.'"');
}
$sql="select * from provider where provider='".$domain."'";
$res=mysql_query($sql);
$unique5=mysql_fetch_array($res);
if($unique5==''){
mysql_query("insert into provider set provider='".$domain."', hits=1");
}
else{
mysql_query("update provider set hits=hits+1 where provider='".$domain."'");
}
$sql='select * from language where language="'.$language.'"';
$res=mysql_query($sql);
$unique6=mysql_fetch_array($res);
if($unique6==''){
mysql_query('insert into language set language="'.$language.'", hits=1');
}
else{
mysql_query('update language set hits=hits+1 where language="'.$language.'"');
}
mysql_query('update config set value=value+1 where name="total_value"');
$sql='select value from config where name="total_value"';
$res=mysql_query($sql);
$total=mysql_fetch_array($res);
$total=$total[0];
header("Content-type: image/png");
$im = imagecreate((strlen($total)*15), 20);
$sizex = '15';
$sizey = '20';
$numb[0] = imagecreatefrompng('img/0.PNG');
$numb[1] = imagecreatefrompng('img/1.PNG');
$numb[2] = imagecreatefrompng('img/2.PNG');
$numb[3] = imagecreatefrompng('img/3.PNG');
$numb[4] = imagecreatefrompng('img/4.PNG');
$numb[5] = imagecreatefrompng('img/5.PNG');
$numb[6] = imagecreatefrompng('img/6.PNG');
$numb[7] = imagecreatefrompng('img/7.PNG');
$numb[8] = imagecreatefrompng('img/8.PNG');
$numb[9] = imagecreatefrompng('img/9.PNG');
for($a=0;$a<strlen($total);$a++){
$numb_t=$total{$a};
imagecopyresampled($im, $numb[$numb_t], ($a*15), 0, 0, 0, $sizex, $sizey, $sizex, $sizey);
}
$sql='SELECT * FROM last_guests ordery by datum DESC limit 19,1';
$res=mysql_query($sql);
$row=mysql_fetch_array($res);
mysql_query('DELETE FROM last_guests where datum>'.$row['datum']);
imagepng($im);
imagedestroy($im);
?>
//----------------
//config.php
//----------------
<?php
$host = "";//mysql host
$user = '';//mysql User
$pass = "";// mysql pass
$db = "";//mysql db
?>
//----------------
//stats.php
//----------------
<html lang="en-us">
<body>
<table width="100%" cellspacing="0" cellpadding="0" align="center">
<tr><td align="center"><h2>This week stats</h2></td></tr>
<tr><td align="center"><font color="#2C7897">Unique</font><b>/</b><font color="#269AB3">Pageviews</font></td></tr>
<tr><td>
<table width="100%" cellspacing="0" cellpadding="0" align="center"><tr>
<?php
include('config.php');
mysql_connect($host,$user,$pass);
mysql_select_db($db);
$sql='SELECT * FROM `lastdays`';
$res=mysql_query($sql);
for($a=0;$a<7;$a++){
$row=mysql_fetch_array($res);
echo '<td width="14%" align="center"><b>'.$row['day'].'</b></td>';
}
echo '</tr><tr>';
$sql='SELECT * FROM `lastdays`';
$res=mysql_query($sql);
$max=mysql_fetch_array(mysql_query('SELECT MAX(hits) FROM `lastdays`'));
$max=120/$max[0];
for($a=0;$a<7;$a++){
$row=mysql_fetch_array($res);
echo '<td align="center" valign="bottom">';
echo '<table width="100%" cellspacing="0" cellpadding="0"><tr><td width="50%" valign="bottom">';
echo '<br><table width="35"><tr><td class="stat2" width="35" height="'.round($row['unique_hits']*$max).'" valign="bottom" align="center"><font color="#000000"><b>'.$row['unique_hits'].'</b></font></td></tr></table>';
echo '</td><td valign="bottom"><br>';
echo '<table width="35"><tr><td class="stat1" width="35" height="'.round($row['hits']*$max).'" valign="bottom" align="center"><font color="#000000"><b>'.$row['hits'].'</b></font></td></tr></table>';
echo '</td></tr></table>';
echo '</td>';
}
?>
</tr></table>
</td></tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" align="center">
<tr><td align="center" width="100%" colspan="6"><h2>Last Guests</h2></td></tr>
<tr>
<td align="center">OS</td>
<td align="center">Language</td>
<td align="center">Browser</td>
<td align="center">Provider</td>
<td align="center">Page</td>
<td align="center">Sent From</td>
</tr>
<?php
$sql='SELECT * FROM last_guests ORDER BY datum DESC LIMIT 20';
$res=mysql_query($sql);
$count=mysql_num_rows($res);
for($a=0;$a<$count;$a++){
$row=mysql_fetch_array($res);
if($row['referrer']=='undefined'){
$referrer='/';
}
else{
$referrer='<a href="'.$row['referrer'].'">Click</a>';
}
echo '<tr><td> '.$row['os'].'</td>';
echo '<td> '.$row['country'].'</td>';
echo '<td> '.$row['browser'].'</td>';
echo '<td> '.$row['domain'].'</td>';
echo '<td> <a href="'.$row['page'].'">Click</a></td>';
echo '<td> '.$referrer.'</td></tr>';
}
?>
</table>
<table width="100%" cellspacing="0" cellpadding="0"><tr><td width="50%" valign="top">
<table width="100%" cellspacing="0" cellpadding="0" align="center">
<tr><td align="center" width="100%" colspan="2"><h2>Browsers</h2></td></tr>
<tr>
<td align="center">Browser</td>
<td align="center">Hits</td>
</tr>
<?php
$sql='SELECT * FROM browsers ORDER BY hits DESC LIMIT 5';
$res=mysql_query($sql);
$count=mysql_num_rows($res);
for($a=0;$a<$count;$a++){
$row=mysql_fetch_array($res);
echo '<tr><td>'.$row['browser'].'</td>';
echo '<td>'.$row['hits'].'</td></tr>';
}
?>
</table>
</td><td valign="top">
<table width="100%" cellspacing="0" cellpadding="0" align="center">
<tr><td align="center" width="100%" colspan="2"><h2>Os</h2></td></tr>
<tr>
<td align="center">Os</td>
<td align="center">Hits</td>
</tr>
<?php
$sql='SELECT * FROM os ORDER BY hits DESC LIMIT 5';
$res=mysql_query($sql);
$count=mysql_num_rows($res);
for($a=0;$a<$count;$a++){
$row=mysql_fetch_array($res);
echo '<tr><td>'.$row['os'].'</td>';
echo '<td>'.$row['hits'].'</td></tr>';
}
?>
</table>
</td></tr></table>
<table width="100%" cellspacing="0" cellpadding="0"><tr><td width="50%" valign="top">
<table width="100%" cellspacing="0" cellpadding="0" align="center">
<tr><td align="center" width="100%" colspan="2"><h2>Languages</h2></td></tr>
<tr>
<td align="center">Languages</td>
<td align="center">Hits</td>
</tr>
<?php
$sql='SELECT * FROM language ORDER BY hits DESC LIMIT 5';
$res=mysql_query($sql);
$count=mysql_num_rows($res);
for($a=0;$a<$count;$a++){
$row=mysql_fetch_array($res);
echo '<tr><td>'.$row['language'].'</td>';
echo '<td>'.$row['hits'].'</td></tr>';
}
?>
</table>
</td><td valign="top">
<table width="100%" cellspacing="0" cellpadding="0" align="center">
<tr><td align="center" width="100%" colspan="2"><h2>Providers</h2></td></tr>
<tr>
<td align="center">Providers</td>
<td align="center">Hits</td>
</tr>
<?php
$sql='SELECT * FROM provider ORDER BY hits DESC LIMIT 5';
$res=mysql_query($sql);
$count=mysql_num_rows($res);
for($a=0;$a<$count;$a++){
$row=mysql_fetch_array($res);
echo '<tr><td>'.$row['provider'].'</td>';
echo '<td>'.$row['hits'].'</td></tr>';
}
?>
</table>
</td></tr></table>
//----------------
//Counter img
//----------------
Dit is de counter:<br>
<script language="JavaScript">
if(parent.document["referrer"]!=''){
var referrer=parent.document["referrer"];
}
else if(parent.document.referrer!=''){
var referrer=parent.document.referrer;
}
else if(document.referrer!=''){
var referrer=document.referrer;
}
document.write('<a href="stats.php"><img src="counter.php?location='+document.location+'&referrer='+referrer+'" alt="Counter" border="0"></a>');
</script>
Reacties
0