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