Forum Pplware
[tutorial] Imagens aleatórias com base de dados para estatisticas - Versão de Impressão

+- Forum Pplware (http://forum.pplware.com)
+-- Fórum: Mais Tech (/forumdisplay.php?fid=11)
+--- Fórum: Programação e Web (/forumdisplay.php?fid=16)
+---- Fórum: Guias e Tutorials (/forumdisplay.php?fid=38)
+---- Tópico: [tutorial] Imagens aleatórias com base de dados para estatisticas (/showthread.php?tid=830)



[tutorial] Imagens aleatórias com base de dados para estatisticas - anjo2 - 08-10-2008 18:15

Bem, a base de dados apenas serve para estatísticas, mas podem criar uma para as imagens ao invés de as terem apenas no php. Eu vou dar o exemplo com 2 imagens.

Criação da tabela:
Código:
CREATE TABLE IF NOT EXISTS `nome_da_tabela` (
  `ip` varchar(50) collate latin1_general_ci NOT NULL,
  `views` int(11) NOT NULL,
  `clicks` int(11) NOT NULL,
  `cc` varchar(50) collate latin1_general_ci NOT NULL,
  `country` varchar(50) collate latin1_general_ci NOT NULL,
  PRIMARY KEY  (`ip`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

Ficheiro includes/db.inc.php
Código PHP:
<?php
        
/*  Database Information - Required!!  */
        /* -- Configure the Variables Below --*/
        
$dbhost 'localhost';
        
$dbusername '';
        
$dbpasswd '';
        
$database_name '';
        
/* Database Stuff, do not modify below this line */
        
$connection mysql_connect("$dbhost","$dbusername","$dbpasswd")
                or die (
"Couldn't connect to server.");
        
$db mysql_select_db("$database_name"$connection)
                or die(
$database_name - Couldn't select database.");
?>

Ficheiro imagem.php
Código PHP:
<?php
        ini_set
('display_errors''0');
        
error_reporting (E_ALL); // Report everything
        
include("includes/db.inc.php");
        
session_start();
        
// Add a view
        
$ip $_SERVER['REMOTE_ADDR'];
        
$handle fopen("http://www.ipdomain.info/cc[".$ip."]""r");
        
$cc stream_get_contents($handle);
        
fclose($handle);
        
$handle fopen("http://www.ipdomain.info/country[".$ip."]""r");
        
$country stream_get_contents($handle);
        
fclose($handle);
        if(!
mysql_num_rows(mysql_query("SELECT `ip` FROM `nome_da_tabela` WHERE `ip`='$ip'"))) {
                
mysql_query("INSERT INTO `nome_da_tabela` values('$ip', 1, 0, '$cc', '$country')");
        }
        else {
                
mysql_query("UPDATE `nome_da_tabela` SET `views` = `views` + 1 WHERE `ip`='$ip'");
        }

        
header('Content-type: image/gif');
        if(
rand(1,2) == 1) {
                
$stream fopen('images/pub1.gif''r');
                
$_SESSION['image'] = 1;
        }
        else {
                
$stream fopen('images/pub2.gif''r');
                
$_SESSION['image'] = 2;
        }
        echo 
stream_get_contents($stream);
        
fclose($stream);

?>

Ficheiro visit.php
Código PHP:
<?php

        ini_set
('display_errors''0');
        
error_reporting (E_ALL); // Report everything
        
include("includes/db.inc.php");
        
session_start();
        
// Add a view
        
$ip $_SERVER['REMOTE_ADDR'];
        
$handle fopen("http://www.ipdomain.info/cc[".$ip."]""r");
        
$cc stream_get_contents($handle);
        
fclose($handle);
        
$handle fopen("http://www.ipdomain.info/country[".$ip."]""r");
        
$country stream_get_contents($handle);
        
fclose($handle);
        if(!
mysql_num_rows(mysql_query("SELECT `ip` FROM `nome_da_tabela` WHERE `ip`='$ip'"))) {
                
mysql_query("INSERT INTO `nome_da_tabela` values('$ip', 1, 1, '$cc', '$country')");
        }
        else {
                
mysql_query("UPDATE `nome_da_tabela` SET `clicks` = `clicks` + 1 WHERE `ip`='$ip'");
        }
        if(!isset(
$_SESSION['image'])) $link "http://www.oteusite.com"// Se não estiver definido
        
if($_SESSION['image'] == 1$link "http://www.outrosite.com";
        if(
$_SESSION['image'] == 2$link "http://www.outrosite2.com";
        
header("Location: $link");

?>

Ficheiro .htaccess
Código:
RewriteEngine on
RewriteRule ^pub.gif$ imagem.php [L]
RewriteRule ^page$ visit.php [L]

Agora é só darem o link de http://www.aminhapagina.com/publicidade/pub.gif e que seja redireccionado para http://www.aminhapagina.com/page

PS.: Apesar do código não estar documentado, é fácil fazer alterações ao mesmo para ficar ao vosso gosto


RE: [tutorial] Imagens aleatórias com base de dados para estatisticas - tbogas - 08-10-2008 18:52

interessante.
Mas

404 NOT FOUND.. é o que dá


RE: [tutorial] Imagens aleatórias com base de dados para estatisticas - anjo2 - 08-10-2008 19:31

Aquilo foram exemplos, querem ver a funcionar? Não sei se posso por aqui publicidade


RE: [tutorial] Imagens aleatórias com base de dados para estatisticas - Bruno Bernardino - 24-03-2009 23:07

@anjo2

Podes sim Smile

EDIT: Reparei agora como este tópico é antigo... de qualquer das maneiras, fica a intenção...