Ir ao conteúdo

Estatísticas no seu TinyURL.

Olá,

Algum tempo atrás eu mostrei como criar um sistema próprio de Tiny-URL, estava curioso para saber como andavam os acessos aos meus links distribuidos por outros endereços, decidi implementar um sistema simples de controle de acessos.

Inicialmente você precisa adicionar estas duas tabelas em seu banco de dados:

[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]

Após isso você deve fazer umas alterações no seu function-little-url.php mais especificamente no take_url($ur) deixe-o da seguinte maneira:

[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]

Neste sistema, existe uma tabela de IPs que já acessaram as URLs, quando uma nova URL é consultada, ele verifica se o IP já está cadastrado, caso esteja cria somente um novo acesso para esse IP no endereço X, caso não esteja cadastra este IP e cria o acesso para este IP no endereço X.

Como criar um Tiny URL com suporte para estatisticas

Matheus

PS: Para consultar os acessos você deve acessar seu banco de dados e realizar consultas manualmente.
PS2: Para seu Tiny URL funcionar, você deve adicionar algumas regras de Rewriting. Você pode ver elas em Criar um sistema próprio de Tiny-URL

Edit: Corrigido erro que não adicionava a data e hora quando o IP já estava na tabela.

Publicado emMySQLphp

14 Comentários

  1. **mitolyn official**

    Mitolyn is a carefully developed, plant-based formula created to help support metabolic efficiency and encourage healthy, lasting weight management.

  2. Vavada to znane kasyno online, które działa również w Polsce. Strona przyciąga graczy szeroką ofertą gier, przejrzystymi warunkami i obsługą w PLN (zł). Bonus powitalny oraz intuicyjna obsługa sprawiają, że platforma zdobyła popularność wśród polskich użytkowników.

  3. https://888starz.net.co/
    888Starz Colombia es una plataforma de casino online y casa de apuestas que cuenta con mas de 9.500 juegos disponibles, entre los que se incluyen maquinas tragamonedas, ruletas y mesas con croupier real junto a una variada seleccion de disciplinas deportivas que cubre desde la Liga BetPlay hasta la Champions League y esports.

  4. Kasyno vavada systematycznie buduje swoją pozycję wśród polskim graczom, oferując kompletną lokalizację w języku polskim. Vavada casino zapewnia metody płatności dostosowane do lokalnego rynku, a vavada pl umożliwia łatwy dostęp dla graczy z Polski. Oficjalną stronę vavada kasyno odwiedzają głównie doświadczonych graczy, którzy doceniają atrakcyjne bonusy i program lojalnościowy.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *