Bem vindo ao SOS Designers

Faça o seu cadastro gratuito no Portal SOS Designers e tenha um acesso personalizado.

Empresas

Cadastre gratuitamente suas vagas, crie sua propria Lista de Curriculos Favoritos, e tenha um acesso personalizado.

Usuarios

Cadastre gratuitamente seu curriculo, crie sua propria Lista de Noticias Favoritas e tenha um acesso personalizado.

Área de Empresas | Vagas

Área de acesso a empresas cadastradas que desejam postar vagas de empregos no Portal e pesquisar curriculos.

Cadastre-se gratuitamente
Esqueceu a sua senha?

Área de Usuarios | Curriculos

Área do Usuario que deseja cadastrar seu curriculo e pesquisar vagas.



Cadastre-se gratuitamente
Esqueceu a sua senha?

Teste
Localone Hospedagem

PHP

Sistema de Banner Rotativo

Introdução

Quando resolvi lançar uma versão mais robusta do Viva o Linux, umas das primeiras coisas em que pensei foi num sistema de banners rotativos. Uma vez lançado o site, acreditava que em pouco tempo já teriam se firmado algumas parcerias para troca ou venda de banners e para não me limitar a apenas um banner fixo nas páginas, um esquema de rotatividade seria necessário.

Sendo assim, segui a seguinte lógica de raciocínio: se tenho dois banners e um acabou de ser exibido, a próxima pageview do site deve mostrar o segundo banner. Eventualmente o parceiro/cliente pode querer estatísticas, então tenho que saber quantas vezes o banner foi exibido e quantas vezes foi clicado.

Ao analisar o estudo de caso decidi que o melhor esquema para a solução seria a utilização de programas PHP armazenando dados sobre o banner em tabelas do MySQL. Nas próximas páginas vamos descobrir como o sistema funciona na prática.

Criando a tabela banner no MySQL

Após análise, eis a lista do que achei que seria necessário armazenar em banco de dados:

  • Imagem do banner
  • URL do site
  • Número de pageviews (exibições)
  • Número de cliques (visitas)
  • Texto alternativo (propriedade alt da tag img)
  • Se o banner está habilitado ou não
Logo podemos chegar à seguinte estrutura para nossa tabela, batizada de banner:
+--------+---------------+------+-----+---------+----------------+
| Field  | Type          | Null | Key | Default | Extra          |
+--------+---------------+------+-----+---------+----------------+
| codigo | int(11)       |      | PRI | NULL    | auto_increment |
| url    | varchar(80)   |      |     |         |                |
| foto   | varchar(50)   |      |     |         |                |
| hits   | int(11)       | YES  |     | 0       |                |
| clicks | int(11)       | YES  |     | 0       |                |
| alt    | varchar(80)   | YES  |     | NULL    |                |
| ativo  | enum('0','1') | YES  |     | 0       |                |
+--------+---------------+------+-----+---------+----------------+

E a seguir o código SQL usado para criá-la no MySQL:

CREATE TABLE banner (
   codigo int(11) NOT NULL auto_increment,
   url varchar(80) NOT NULL default '',
   foto varchar(50) NOT NULL default '',
   hits int(11) default '0',
   clicks int(11) default '0',
   alt varchar(80) default NULL,
   ativo enum('0','1') default '0',
   PRIMARY KEY (codigo)
) TYPE=MyISAM

Execute a cláusula acima no prompt do seu MySQL e zé fini, vamos à implementação do sistema. :)

Cadastrando um banner no sistema

O processo de cadastramento de banner no sistema exige dois passos.

  • Cópia da imagem do banner para o diretório de imagens
  • Inserção do registro do banner no MySQL

Cópia da imagem do banner para o diretório de imagens


Supondo que o diretório que escolhi para ser meu repositório de banners chama-se ./imagens/banners/ e meu primeiro banner possui uma imagem chamada banner01.gif, basta copiar a imagem sugerida para o diretório escolhido.

Inserção do registro do banner no MySQL

Uma vez que sabemos o nome da imagem do banner, podemos inserir um registro usando a seguinte cláusula SQL:

INSERT INTO banner (url, foto, alt, ativo) VALUES ('http://www.agatetepe.com.br', 'banner01.gif', 'O seu site de tutoriais', '1')
A linha acima vai cadastrar um banner para o site www.agatetepe.com.br, divulgado pela imagem banner01.gif, com o texto "O seu site de tutoriais" e ativo (1). O número de hits e de clicks são inicializados por padrão com o valor 0 (zero).

Exibindo o banner e contabilizando os pageviews

Agora que já alimentamos nosso banco de dados com os banners, vamos adicionar código PHP para buscar os dados e exibi-los no browser do usuário.

Neste exemplo vamos criar uma página index.php com apenas o banner como conteúdo. Quando você for usar este código, pode adicionar o resto do conteúdo da página misturado com o código a seguir naturalmente.
<? /*
Estou partindo do princípio que você possui uma variável $con que é um
link identificador com sua conexão com o banco de dados, retornada pela
função mysql_connect(). */

// capturar banner
$query = "SELECT codigo, foto, alt, hits FROM banner
   WHERE ativo='1'
   ORDER BY hits LIMIT 1";
list ($banner_codigo, $banner_foto, $banner_alt, $banner_hits) = mysql_fetch_array(mysql_query($query,$con));
$banner_hits++;

// atualizar hits do banner
$update = "UPDATE banner SET hits=$banner_hits WHERE codigo=$banner_codigo";
mysql_query($update,$con);

echo "<a href='verBanner.php?codigo=$banner_codigo' alt='$banner_alt'><img src='./imagens/banners/$banner_foto' border=0></a>";

?>

Notaram o detalhe do código acima ? O link para o banner aponta para um segundo script, o verBanner.php, que será o responsável pela contabilização do número de cliques no banner e em seguida pelo redirecionamento para a página em questão. Lembre-se que a variável hits corresponde ao número de pageviews do banner e não ao número de vezes que ele foi clicado.

Contabilizando o número de cliques e redirecionando para a URL

Por fim, o programa verBanner.php, que recebe como parâmetro o código do banner na tabela do MySQL, contabiliza o clique e redireciona o browser para a URL relacionada.

/*
Estou partindo do princípio que você possui uma variável $con que é um
link identificador com sua conexão com o banco de dados, retornada pela
função mysql_connect(). */

// recebe codigo do banner

$query = "SELECT clicks, url FROM banner WHERE codigo=$codigo";
list ($clicks, $url) = mysql_fetch_array(mysql_query($query,$con));

$clicks++;
$update = "UPDATE banner SET clicks=$clicks WHERE codigo=$codigo";
mysql_query($update,$con);

header("Location: $url"); // redirecionar p/ url Ficou claro pessoal ? Espero que esse artigo possa vir a ser útil à alguém. Vou ficando por aqui, have fun !!!

Atenciosamente,
Fábio Berbert de Paula
fabio@vivaolinux.com.br




© Copyright 2002-2010
Portal SOS Designers
Webmaster: Luiz Antonio Tagawa Bovi