Skip to content

Statistics on your URL Shortener.

Hello

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:

[code lang="sql"]CREATE TABLE access (
aid INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
urls_uid INTEGER UNSIGNED NOT NULL,
information_iid INTEGER UNSIGNED NOT NULL,
date DATE NULL,
PRIMARY KEY(aid),
INDEX access_FKIndex1(information_iid),
INDEX access_FKIndex2(urls_uid)
);

CREATE TABLE information (
iid INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
ip VARCHAR(255) NULL,
PRIMARY KEY(iid)
);[/code]

After this you should do a modification in your function-little-url.php in the function take_url($url):

[code lang="php"]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;
}[/code]

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.

How to create a URL-Shortener with Statistics

Matheus

Published inMySQLphp

One Comment

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.