|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
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 "", ...
Fichier Zip
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
Télécharger le zip
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
Sources en rapport avec celle ci
Commentaires et avis
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|