The author of Quick-Flickr-Widget the Konstantin Kovshenin just launched a new version. So I decided to re-update his plugin with my modifications to get a better random system.
I decided to implement a Chart vision of the access to a address of the last 30 days. THe system that I choosed is Open Flash Chart.
The new methods:
getAccess($id) – Return an Associative Array with the access by date and the total
formatData($data) – Receive the access of getAccess and transform it in a Numeric Array.
criarLabels() – Create the labels to the bottom part of the chart.
If you want to access it, you have to manually get the ID and use http://www.example.com/diretorio/chart.php?id=ID where ID is UID from the MySQL table.
A few weeks ago I showed you how to create your own URL-Shortener. I decide to improve it, creating a simple system to control the number of access
First of all you need to add some tables to your data base:
CREATETABLE access (
aid INTEGER UNSIGNEDNOTNULLAUTO_INCREMENT,
urls_uid INTEGER UNSIGNEDNOTNULL,
information_iid INTEGER UNSIGNEDNOTNULL,
date DATE NULL, PRIMARYKEY(aid), INDEX access_FKIndex1(information_iid), INDEX access_FKIndex2(urls_uid) );
CREATETABLE information (
iid INTEGER UNSIGNEDNOTNULLAUTO_INCREMENT,
ip VARCHAR(255)NULL, PRIMARYKEY(iid) );
After this you should do a modification in your function-little-url.php in the function take_url($url):
function take_lurl($lurl){ global$link; $q="SELECT * FROM `urls` WHERE `unique_chars` = ‘".$lurl."’"; $r=mysql_query($q,$link);// Realiza consulta. if(mysql_num_rows($r)>0){ $info=mysql_fetch_array($r); $url=$info["url"];// Pega endereço real $uid=$info["uid"];// Pega ID do endereço $ip=$_SERVER[‘REMOTE_ADDR’];// Pega IP do usuário $qr="select iid from `information` where ip = ‘".$ip."’"; $rr=mysql_query($qr,$link);// Procura se este IP já está no banco de dados if(mysql_num_rows($rr)>0){// Caso esteja insere somente um acesso novo proveniente deste IP $iid=mysql_result($rr,0,"iid"); mysql_query("INSERT INTO `access` (urls_uid,information_iid,date) values (".$uid.", ".$iid.", now())",$link); }else{// Caso não esteja, cria um registro com este IP e após cria um acesso. $qr=mysql_query("INSERT INTO `information` (ip) values (‘".$ip."’)",$link); $iid=mysql_insert_id($qr); mysql_query("INSERT INTO `access` (urls_uid,information_iid,date) values (".$uid.", ".$iid.", now())",$link); } }else{ echo"Sorry, link not found!"; } return$url; }
In this System there is a table with IPs that already accessed some URL, when a URL is accessed it verify the IP, if it is on the table just create an access to this IP in the new address. Otherwise, add the IP and create the access to the address.
This is a implementation of B-Tree. This program read a list of ZipCodes and insert then in a Tree, and it should calculate the time of add each one. But i think it is something wrong.