<?
// Regie de Publicité par Francois L.
// Inspirée de la régie écrite pour ASP de ASP-FR
// Voici une regie de pub qui gere l'affichage de bandeaux et qui en
// comptabilise le nombre d'affichages et le nombre de clicks pour votre regie
// interne.
// Elle gere aussi les scripts qui vous sont fournis par les régies
// publicitaires comme ComClick,etc... Dans ce cas, seul le nombre d'affichage
// est comptabilisé.
// Dans les deux cas, la régie gére les dates de demmarage et de fin de
// campagne publicitaire.
// Le champs IdCategorie, vous permet de cibler la pub, par exemple, si vous
// voulez affichez un certain groupe de pub, vous faites
// require "publicite.php3?IdCat=5";
// Le choix des bannieres se portera sur celles qui auront le champs IdCategorie=5
// CREATE TABLE publicite (
// IdBan mediumint(9) NOT NULL auto_increment,
// UrlBan varchar(255) NOT NULL,
// GfxBan varchar(255) NOT NULL,
// AffMaxBan int(11) DEFAULT '0' NOT NULL,
// ClickMaxBan int(11) DEFAULT '0' NOT NULL,
// AffBan int(11) DEFAULT '0' NOT NULL,
// ClickBan int(11) DEFAULT '0' NOT NULL,
// RawCode text NOT NULL,
// IdCategorie int(11) DEFAULT '0' NOT NULL,
// DateDebut date DEFAULT '0000-00-00' NOT NULL,
// DateFin date DEFAULT '2010-01-01' NOT NULL,
// KEY IdBan (IdBan),
// UNIQUE IdBan_2 (IdBan)
// );
$mysql_link = mysql_connect("localhost","root","");
mysql_select_db("creshendo",$mysql_link);
$sql = "select IdBan, UrlBan, GfxBan,RawCode from publicite ";
$sql .= "where ( (AffBan < AffMaxBan) AND (ClickBan < ClickMaxBan) ";
$sql .= "AND (DateDebut <= CurDate()) AND (DateFin > CurDate()) ";
// pour trouver une campagne ciblée
if (isset($IdCat))
$sql .= " AND ( IdCategorie = $IdCat ) ";
$sql .= " )";
$res = mysql_query($sql,$mysql_link);
$NbBan=mysql_num_rows($res);
if (!$NbBan) {
// Si pas de campagne ciblées en cours on cherche une autre banniere
$sql = "select IdBan, UrlBan, GfxBan,RawCode from publicite ";
$sql .= "where ( (AffBan < AffMaxBan) AND (ClickBan < ClickMaxBan) ";
$sql .= "AND (DateDebut <= CurDate()) AND (DateFin > CurDate()) ) ";
$res = mysql_query($sql,$mysql_link);
$NbBan=mysql_num_rows($res);
}
if ($NbBan) {
// Si campagnes en cours
srand(time());
rand();
$BanIndex=intval($NbBan*rand()/getrandmax());
$succ=mysql_data_seek($res,$BanIndex);
$row=mysql_fetch_row($res);
if ($row[3]<>"")
echo $row[3];
else {
echo "<a href=\"go_ban.php3?IdBan=$row[0]\" target=\"_blank\">";
echo "<img src=\"$row[2]\" border=0></a>";
}
$sql="UPDATE publicite SET AffBan = AffBan + 1 where IdBan = $row[0]";
mysql_query($sql,$mysql_link);
} else {
// C'est la banniere à afficher si toutes les campagnes
// publicitaires sont épuisées
echo "<img src=\"BanniereParDefaut.gif\">";
}
mysql_close($mysql_link);
?>
FICHIER go_ban.php3
-------------------
<?
$mysql_link = mysql_connect("localhost","root","");
mysql_select_db("creshendo",$mysql_link);
$sql="UPDATE publicite SET ClickBan = ClickBan + 1 WHERE IdBan = $IdBan ";
mysql_query($sql,$mysql_link);
$sql="SELECT UrlBan FROM publicite WHERE IdBan = $IdBan ";
$res=mysql_query($sql,$mysql_link);
mysql_close($mysql_link);
if ($row=mysql_fetch_row($res))
header("Location: $row[0]");
else
echo "Erreur de redirection...";
?>