Accueil > > > REGIE PUB
REGIE PUB
Information sur la source
Description
Ce code permet la mise en place d'une regie pub ;) cette regie permet de compter le nombre de clicks et le nombre de fois que la pub a ete affichee. On specifie un nombre de clicks maximum, et lorsque ce nombre est atteint, la pub ne s'affiche plus ... On peut donc faire payer un annonceur pour un nombre de clicks determiner Je pense avoir fait un effort sur la presentation: code bien indenter, commentaire clairs (du moins pour moi mais tenez moi au courant) Voila c'est ma premiere source postee sur phpcs ... peut etre d'autres (ou pas :P)
Source
- <?php
- /**
- * Regie pub
- * by : Superbaloo@clanfrance.com
- *
- *
- * Elle permet d'afficher une pub sur son site, ces pubs sont gerees par base de donnee, leur nombre de clics comptabilises,
- * et la pub disparait lorsque l'on arrive au nombre de pubs maximales.
- * Elle permet egalement de savoir le nombre de fois que la pub a ete vues par les utilisateurs.
- * L'heure a laquelle est cliquee la pub est egalement sauvegardee
- */
- error_reporting(E_ALL);
-
- define('_IN_PUB',true,true);
-
- session_start();
-
- include(dirname(__FILE__).'/config.inc.php');
-
-
- if(!$db = mysql_connect($config['db']['host'], $config['db']['user'], $config['db']['pass']))
- {
- die(mysql_error($db));
- }
- mysql_select_db($config['db']['db'],$db);
-
- if( !$result = mysql_query('SELECT `id`,`link`
- FROM `'.$config['db']['prefix'].'pub`
- WHERE `max_clicks` > `clicks`',$db) )
- die(mysql_error($db));
-
- $rand = rand(0,mysql_numrows($result)-1);
-
- if( !mysql_data_seek($result,$rand) )
- die(mysql_error($db));
-
- list($selectedId,$selectedLink) = mysql_fetch_row($result);
-
- /**
- * On a pluys besoin de ce resultat, on libere la memoire
- */
-
- if(!mysql_free_result($result))
- die(mysql_error($db));
-
- if( !$result = mysql_query('UPDATE `'.$config['db']['prefix'].'pub` SET `views` = `views` + 1 WHERE `id` = '.$selectedId.' LIMIT 1;',$db) )
- die(mysql_error($db));
-
- /**
- * On a plus besoin de la base mysql, on ferme la connection
- */
-
- if(!mysql_close($db))
- die(mysql_error($db));
-
- /**
- * On va parser le repertoire pubs/ a la recherche d'une image avec l'id $selectedId pour obtenir l'extension ;)
- */
-
- $image = null;
-
- if ($handle = opendir(dirname(__FILE__).'/pubs/'))
- {
- while (false !== ($file = readdir($handle)))
- {
- if(is_file(dirname(__FILE__).'/pubs/'.$file) && preg_match('!^'.$selectedId.'\.(png|jpg|gif)$!i',$file))
- /**
- * Description de l'expression reguliere :
- * '!^'.$selectedId.'\.(png|jpg|gif)$!i'
- * $selectedId prend les valeurs 1, 2, 3, ... des chiffres
- * On pourra donc etudier
- * '!^1\.(png|jpg|gif)$!i' (par exemple ;)
- * le !! qui entoure l'expression est la syntaxe de PCRE un langage d'expression reguliere
- * utiliser notemment dans le perl mais egalement dans toutes les fonctions php commencant
- * par preg_.
- * le ^ juste au debut de l'expression reguliere symbolise le debut de la string, si elle n'y
- * etait pas, un fichiers test1.gif serait par exemple detecter avec cette expression reguliere
- * 1 est vous l'aurez compris le nom du fichier sans son extension
- * \. est le caractere . echappe, . represente une fonction particuliere dans les expressions
- * regulieres, on doit donc l'echapper pour qu'il soit compris comme le point dans la string
- * $file.
- * (png|jpg|gif) indique que l'on accepte differents formats, du jpeg, du png et du gif ;)
- * le | au milieu de tout ca permet de specifier un OU.
- * le $ juste avant le ! final specifie que c'est la fin de la string qui est la , si il n'y
- * etait pas, alors un fichier appeller 1.gif.php serait valide avec cette expression reguliere
- * et enfin le i a l'exterieur des !! est une "option", elle permet de ne pas etre sensible a la
- * casse, un fichier 1.jpg serait detecter sans mais un fihcier 1.Jpg ou 1.JpG ne serait pas
- * detecter, on rajoute donc ce caractere pour ne pas avoir a ecrire (rien que pour le jpeg)
- * (jpg|Jpg|JPg|JPG|jPG|jpG|jPG|JpG|jPg)
- * voila voila
- */
- {
- $imagePath = './pubs/'.$file;
- /**
- * On stocke dans une variable session l'id de la pub affichee,
- * on la reutilisera dans click.php ;)
- */
- $_SESSION['pub']['id'] = $selectedId;
- $_SESSION['pub']['link'] = $selectedLink;
- $image = $file;
- }
- }
- closedir($handle);
- }
- if($image === null)
- {
- $imagePath = './pubs/0.jpg';
- $image = '0.jpg';
- $_SESSION['pub']['id'] = 0;
- }
-
- /**
- * On va maintenant lire le fichier et le renovyer au navigateur
- */
-
- $extensionImage = explode('.',$image);
-
- header('Cache-Control: no-cache, must-revalidate');
- header('Pragma: no-cache');
- header('Expires:'.gmdate("D, d M Y H:i:s", time() - 3600*24*365));
-
- $imageFile = fopen($imagePath, 'r');// On ouvre l'image
- if(strtolower($extensionImage[1]) === 'jpg')
- {
- header('Content-type: image/jpeg');
- }elseif(strtolower($extensionImage[1]) === 'png')
- {
- header('Content-type: image/png');
- }elseif(strtolower($extensionImage[1]) === 'gif')
- {
- header('Content-type: image/gif');
- }
-
- echo (fread($imageFile, filesize($imagePath)));
- fclose($imageFile);
- ?>
<?php
/**
* Regie pub
* by : Superbaloo@clanfrance.com
*
*
* Elle permet d'afficher une pub sur son site, ces pubs sont gerees par base de donnee, leur nombre de clics comptabilises,
* et la pub disparait lorsque l'on arrive au nombre de pubs maximales.
* Elle permet egalement de savoir le nombre de fois que la pub a ete vues par les utilisateurs.
* L'heure a laquelle est cliquee la pub est egalement sauvegardee
*/
error_reporting(E_ALL);
define('_IN_PUB',true,true);
session_start();
include(dirname(__FILE__).'/config.inc.php');
if(!$db = mysql_connect($config['db']['host'], $config['db']['user'], $config['db']['pass']))
{
die(mysql_error($db));
}
mysql_select_db($config['db']['db'],$db);
if( !$result = mysql_query('SELECT `id`,`link`
FROM `'.$config['db']['prefix'].'pub`
WHERE `max_clicks` > `clicks`',$db) )
die(mysql_error($db));
$rand = rand(0,mysql_numrows($result)-1);
if( !mysql_data_seek($result,$rand) )
die(mysql_error($db));
list($selectedId,$selectedLink) = mysql_fetch_row($result);
/**
* On a pluys besoin de ce resultat, on libere la memoire
*/
if(!mysql_free_result($result))
die(mysql_error($db));
if( !$result = mysql_query('UPDATE `'.$config['db']['prefix'].'pub` SET `views` = `views` + 1 WHERE `id` = '.$selectedId.' LIMIT 1;',$db) )
die(mysql_error($db));
/**
* On a plus besoin de la base mysql, on ferme la connection
*/
if(!mysql_close($db))
die(mysql_error($db));
/**
* On va parser le repertoire pubs/ a la recherche d'une image avec l'id $selectedId pour obtenir l'extension ;)
*/
$image = null;
if ($handle = opendir(dirname(__FILE__).'/pubs/'))
{
while (false !== ($file = readdir($handle)))
{
if(is_file(dirname(__FILE__).'/pubs/'.$file) && preg_match('!^'.$selectedId.'\.(png|jpg|gif)$!i',$file))
/**
* Description de l'expression reguliere :
* '!^'.$selectedId.'\.(png|jpg|gif)$!i'
* $selectedId prend les valeurs 1, 2, 3, ... des chiffres
* On pourra donc etudier
* '!^1\.(png|jpg|gif)$!i' (par exemple ;)
* le !! qui entoure l'expression est la syntaxe de PCRE un langage d'expression reguliere
* utiliser notemment dans le perl mais egalement dans toutes les fonctions php commencant
* par preg_.
* le ^ juste au debut de l'expression reguliere symbolise le debut de la string, si elle n'y
* etait pas, un fichiers test1.gif serait par exemple detecter avec cette expression reguliere
* 1 est vous l'aurez compris le nom du fichier sans son extension
* \. est le caractere . echappe, . represente une fonction particuliere dans les expressions
* regulieres, on doit donc l'echapper pour qu'il soit compris comme le point dans la string
* $file.
* (png|jpg|gif) indique que l'on accepte differents formats, du jpeg, du png et du gif ;)
* le | au milieu de tout ca permet de specifier un OU.
* le $ juste avant le ! final specifie que c'est la fin de la string qui est la , si il n'y
* etait pas, alors un fichier appeller 1.gif.php serait valide avec cette expression reguliere
* et enfin le i a l'exterieur des !! est une "option", elle permet de ne pas etre sensible a la
* casse, un fichier 1.jpg serait detecter sans mais un fihcier 1.Jpg ou 1.JpG ne serait pas
* detecter, on rajoute donc ce caractere pour ne pas avoir a ecrire (rien que pour le jpeg)
* (jpg|Jpg|JPg|JPG|jPG|jpG|jPG|JpG|jPg)
* voila voila
*/
{
$imagePath = './pubs/'.$file;
/**
* On stocke dans une variable session l'id de la pub affichee,
* on la reutilisera dans click.php ;)
*/
$_SESSION['pub']['id'] = $selectedId;
$_SESSION['pub']['link'] = $selectedLink;
$image = $file;
}
}
closedir($handle);
}
if($image === null)
{
$imagePath = './pubs/0.jpg';
$image = '0.jpg';
$_SESSION['pub']['id'] = 0;
}
/**
* On va maintenant lire le fichier et le renovyer au navigateur
*/
$extensionImage = explode('.',$image);
header('Cache-Control: no-cache, must-revalidate');
header('Pragma: no-cache');
header('Expires:'.gmdate("D, d M Y H:i:s", time() - 3600*24*365));
$imageFile = fopen($imagePath, 'r');// On ouvre l'image
if(strtolower($extensionImage[1]) === 'jpg')
{
header('Content-type: image/jpeg');
}elseif(strtolower($extensionImage[1]) === 'png')
{
header('Content-type: image/png');
}elseif(strtolower($extensionImage[1]) === 'gif')
{
header('Content-type: image/gif');
}
echo (fread($imageFile, filesize($imagePath)));
fclose($imageFile);
?>
Conclusion
Reste a faire le panneau admin : coming soon ;) (dans la semaine) stay connected ;)
Attention : une seule pub par page ;)
sinon le code html pour l'utiliser est par exemple : <a href="click.php" ><img src="pub.php" /></a>
je l'ai mis en initie, au pire un admin pourra la redescendre. J'ai fait ce choix car le code est optimise et respecte la semantique. Exemple: j'utilise === au lieu de ==, '' au lieu de "", ...
Historique
- 16 mai 2006 19:18:07 :
- Ajout du code html :)
- 17 mai 2006 18:45:02 :
- ptite modif ;)
- 17 mai 2006 22:37:14 :
- Modif : On n'utilise plus la GD, j'utilise maintenant mysql_seek_data au lieu d'avoir un parsage complet de la reponse sql
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
ZUNE : NOUVELLE VERSION DU ZUNE SOFTWARE - V 4.2ZUNE : NOUVELLE VERSION DU ZUNE SOFTWARE - V 4.2 par ROMELARD Fabrice
Avec la dernière génération du lecteur MP3 de Microsoft, le ZUNE HD, Microsoft a publié une nouvelle version du logiciel pour PC. Ainsi, je me suis décidé à installer celle-ci sur mon Tablet PC ACER, comme toujours le logiciel est donc tél...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice L'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIESL'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIES par odewit
La tendance est aux interfaces naturelles (NUI), et le keynote de Bill Buxton au MIX l'a bien souligné.
La charte graphique et ergonomique de Windows Phone 7 a donc été entièrement repensée en vue d'obtenir un maximum d'efficacité sur ce point. En re...
Cliquez pour lire la suite de l'article par odewit COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE?COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE? par Matthieu MEZIL
Avec EF, les vues doivent être mappées sur des entity types. Le problème c'est que les entity types doivent avoir une clé. Avec EF, nous avons les complex type qui n'ont pas de clé mais les vues ne peuvent pas être mappées dessus. Avec EF4, il est possibl...
Cliquez pour lire la suite de l'article par Matthieu MEZIL
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|