home *** CD-ROM | disk | FTP | other *** search
/ PC World 2001 March / PCWorld_2001-03_cd.bin / KOMUNIK / progweb / progweb.exe / phpnuke / html / banners.php < prev    next >
PHP Script  |  2000-12-05  |  12KB  |  328 lines

  1. <?php
  2.  
  3. ######################################################################
  4. # PHP-NUKE: Web Portal System
  5. # ===========================
  6. #
  7. # Copyright (c) 2000 by Francisco Burzi (fburzi@ncc.org.ve)
  8. # http://phpnuke.org
  9. #
  10. # This modules is to have a complete Banner Ad solution integrated
  11. #
  12. # This program is free software. You can redistribute it and/or modify
  13. # it under the terms of the GNU General Public License as published by
  14. # the Free Software Foundation; either version 2 of the License.
  15. ######################################################################
  16.  
  17. if (eregi("banners.php",$PHP_SELF)) include("mainfile.php");
  18.  
  19. /********************************************/
  20. /* Function to display banners in all pages */
  21. /********************************************/
  22.  
  23. function viewbanner() {
  24.     $bresult = mysql_query("select * from banner");
  25.     $numrows = mysql_num_rows($bresult);
  26.  
  27. // Get a random banner if exist any.
  28. // More efficient random stuff, thanks to Cristian Arroyo from http://www.planetalinux.com.ar
  29.  
  30.     if ($numrows>1) {
  31.     $numrows = $numrows-1;
  32.     mt_srand((double)microtime()*1000000);
  33.     $bannum = mt_rand(0, $numrows);
  34.     } else {
  35.     $bannum = 0;
  36.     }
  37.     $bresult2 = mysql_query("select bid, imageurl from banner limit $bannum,1");
  38.     list($bid, $imageurl) = mysql_fetch_row($bresult2);
  39.     
  40.     global $myIP;
  41.     $myhost = getenv("REMOTE_ADDR");
  42.     if($myIP==$myhost) {
  43.     } else {
  44.     mysql_query("update banner set impmade=impmade+1 where bid=$bid");
  45.     }
  46.     if($numrows>0) {
  47.     $aborrar = mysql_query("select cid, imptotal, impmade, clicks, date from banner where bid=$bid");
  48.     list($cid, $imptotal, $impmade, $clicks, $date) = mysql_fetch_row($aborrar);
  49.  
  50. // Check if this impression is the last one and print the banner
  51.  
  52.     if($imptotal==$impmade) {
  53.         mysql_query("insert into bannerfinish values (NULL, '$cid', '$impmade', '$clicks', '$date', now())");
  54.         mysql_query("delete from banner where bid=$bid");
  55.     }
  56.     echo"<center><a href=banners.php?op=click&bid=$bid target=_blank><img src=$imageurl border=1></a></center><br>";
  57.     }
  58.     mysql_free_result($bresult);
  59.     mysql_free_result($bresult2);
  60.     if($aborrar) {
  61.     mysql_free_result($aborrar);
  62.     }
  63.     
  64. }
  65.  
  66. /********************************************/
  67. /* Function to redirect the clicks to the   */
  68. /* correct url and add 1 click              */
  69. /********************************************/
  70.  
  71. function clickbanner($bid) {
  72.     $bresult = mysql_query("select clickurl from banner where bid=$bid");
  73.     list($clickurl) = mysql_fetch_row($bresult);
  74.     mysql_query("update banner set clicks=clicks+1 where bid=$bid");
  75.     mysql_free_result($bresult);
  76.     Header("Location: $clickurl");
  77. }
  78.  
  79. /********************************************/
  80. /* Function to let your client login to see */
  81. /* the stats                                */
  82. /********************************************/
  83.  
  84. function clientlogin() {
  85.     echo"
  86.     <html>
  87.     <body bgcolor=AA9985 text=000000 link=006666 vlink=006666>
  88.     <center><br><br><br><br>
  89.     <table width=200 cellpadding=0 cellspacing=1 border=0 bgcolor=000000><tr><td>
  90.     <table width=100% cellpadding=5 cellspacing=1 border=0 bgcolor=FFFFFF><tr><td colspan=1 bgcolor=eecfa1>
  91.     <center><b>Advertising Statistics</b>
  92.     </td></tr><tr><td bgcolor=fffacd>
  93.     <form action=banners.php method=post>
  94.     Login: <input class=textbox type=text name=login size=12 maxlength=10><br>
  95.     Password: <input class=textbox type=password name=pass size=12 maxlength=10><br>
  96.     <input class=textbox type=hidden name=op value=Ok>
  97.     <input type=submit value=Login></td></tr><tr><td bgcolor=eecfa1>
  98.     <font size=2>
  99.     <center>Please type your client information</center>
  100.     </td></tr></table></td></tr></table></form></font>
  101.     </body></html>";
  102. }
  103.  
  104. /*********************************************/
  105. /* Function to display the banners stats for */
  106. /* each client                               */
  107. /*********************************************/
  108.  
  109. function bannerstats($login, $pass) {
  110.     $result = mysql_query("select cid, name, passwd from bannerclient where login='$login'");
  111.     list($cid, $name, $passwd) = mysql_fetch_row($result);
  112.     
  113.     if($login=="" AND $pass=="" OR $pass=="") {
  114.     echo "<center><br>Login Incorrect!!!<br><br><a href=javascript:history.go(-1)>Back to Login Screen</a></center>";
  115.     } else {
  116.     
  117.     if ($pass==$passwd) {
  118.     
  119.     echo"
  120.     <html>
  121.     <body bgcolor=AA9985 text=000000 link=006666 vlink=006666>
  122.     <center>
  123.     <table border=0 width=100% cellpadding=0 cellspacing=1 bgcolor=000000><tr><td>
  124.     <table border=0 width=100% cellpadding=8 cellspacing=1 bgcolor=fffacd><tr><td>
  125.     <font size=3>
  126.     <center><b>Current Active Banners for $name</b></center><br>
  127.     <font size=3>
  128.     <table width=100% border=0><tr>
  129.     <td bgcolor=887765><font color=Black><center><b>ID</b></td>
  130.     <td bgcolor=887765><font color=Black><center><b>Imp. Made</b></td>
  131.     <td bgcolor=887765><font color=Black><center><b>Imp. Total</b></td>
  132.     <td bgcolor=887765><font color=Black><center><b>Imp. Left</b></td>
  133.     <td bgcolor=887765><font color=Black><center><b>Clicks</b></td>
  134.     <td bgcolor=887765><font color=Black><center><b>% Clicks</b></td>
  135.     <td bgcolor=887765><font color=Black><center><b>Functions</b></td><tr>";
  136.     $result = mysql_query("select bid, imptotal, impmade, clicks, date from banner where cid='$cid'");
  137.     while(list($bid, $imptotal, $impmade, $clicks, $date) = mysql_fetch_row($result)) {
  138.         if($impmade==0) {
  139.             $percent = 0;
  140.         } else {
  141.             $percent = substr(100 * $clicks / $impmade, 0, 5);
  142.         }
  143.  
  144.         if($imptotal==0) {
  145.             $left = "Unlimited";
  146.         } else {
  147.             $left = $imptotal-$impmade;
  148.         }
  149.         echo "
  150.         <td bgcolor=AA9985 align=center><font color=White>$bid</td>
  151.         <td bgcolor=AA9985 align=center><font color=White>$impmade</td>
  152.         <td bgcolor=AA9985 align=center><font color=White>$imptotal</td>
  153.     <td bgcolor=AA9985 align=center><font color=White>$left</td>
  154.         <td bgcolor=AA9985 align=center><font color=White>$clicks</td>
  155.         <td bgcolor=AA9985 align=center><font color=White>$percent%</td>
  156.         <td bgcolor=AA9985 align=center><font color=White><a href=banners.php?op=EmailStats&login=$login&cid=$cid&bid=$bid>E-mail Stats</a></td><tr>";
  157.     }
  158.     echo "
  159.     </td></tr></table>
  160.     <center><br><br>
  161.     Following are your running Banners in $sitename<br><br>";
  162.  
  163.     $result = mysql_query("select bid, imageurl, clickurl from banner where cid='$cid'");
  164.     while(list($bid, $imageurl, $clickurl) = mysql_fetch_row($result)) {
  165.  
  166.     $numrows = mysql_num_rows($result);
  167.     if ($numrows>1) {
  168.         echo "<hr noshade width=80%><br>";
  169.     }
  170.  
  171.     echo "<img src=$imageurl border=1><br>
  172.     <font size=2>Banner ID: $bid<br>
  173.     Send <a href=banners.php?op=EmailStats&login=$login&cid=$cid&bid=$bid>E-Mail Stats</a> for this Banner<br>
  174.     This Banners points to <a href=$clickurl>this URL</a><br>
  175.     <form action=banners.php method=submit>
  176.     Change URL: <input class=textbox type=text name=url size=50 maxlength=200 value=$clickurl>
  177.     <input class=textbox type=hidden name=login value=$login>
  178.     <input class=textbox type=hidden name=bid value=$bid>
  179.     <input class=textbox type=hidden name=pass value=$pass>
  180.     <input class=textbox type=hidden name=cid value=$cid>
  181.     <input type=submit name=op value=Change></form>";
  182.     }
  183.     echo "
  184.     </td></tr></table></td></tr></table>
  185.     </font>";
  186.  
  187.  
  188. // Finnished Banners
  189.     
  190.     echo "
  191.     <center><br>
  192.     <table border=0 width=100% cellpadding=0 cellspacing=1 bgcolor=000000><tr><td>
  193.     <table border=0 width=100% cellpadding=8 cellspacing=1 bgcolor=fffacd><tr><td>
  194.     <font size=3>
  195.     <center><b>Banners Finished for $name</b></center><br>
  196.     <font size=3>
  197.     <table width=100% border=0><tr>
  198.     <td bgcolor=887765><font color=Black><center><b>ID</b></td>
  199.     <td bgcolor=887765><font color=Black><center><b>Impressions</b></td>
  200.     <td bgcolor=887765><font color=Black><center><b>Clicks</b></td>
  201.     <td bgcolor=887765><font color=Black><center><b>% Clicks</b></td>
  202.     <td bgcolor=887765><font color=Black><center><b>Start Date</b></td>
  203.     <td bgcolor=887765><font color=Black><center><b>End Date</b></td><tr>";
  204.     $result = mysql_query("select bid, impressions, clicks, datestart, dateend from bannerfinish where cid='$cid'");
  205.     while(list($bid, $impressions, $clicks, $datestart, $dateend) = mysql_fetch_row($result)) {
  206.         $percent = substr(100 * $clicks / $impressions, 0, 5);
  207.     echo "
  208.         <td bgcolor=AA9985 align=center><font color=White>$bid</td>
  209.         <td bgcolor=AA9985 align=center><font color=White>$impressions</td>
  210.         <td bgcolor=AA9985 align=center><font color=White>$clicks</td>
  211.     <td bgcolor=AA9985 align=center><font color=White>$percent%</td>
  212.         <td bgcolor=AA9985 align=center><font color=White>$datestart</td>
  213.         <td bgcolor=AA9985 align=center><font color=White>$dateend</td><tr>";
  214.     }
  215. echo "
  216. </td></tr></table></td></tr></table></td></tr></table>
  217. <br><a href=http://phpnuke.org><img src=images/powered/phpnuke.gif border=0 Alt=\"This site Powered by PHP-Nuke\"></a>
  218. </body></html>";
  219.     
  220.     } else {
  221.     echo "<center><br>Login Incorrect!!!<br><br><a href=javascript:history.go(-1)>Back to Login Screen</a></center>";    
  222.     }
  223.     }
  224.  
  225. }
  226.  
  227. /*********************************************/
  228. /* Function to let the client E-mail his     */
  229. /* banner Stats                              */
  230. /*********************************************/
  231.  
  232. function EmailStats($login, $cid, $bid, $pass) {
  233.     $result2 = mysql_query("select name, email from bannerclient where cid='$cid'");
  234.     list($name, $email) = mysql_fetch_row($result2);
  235.     if ($email=="") {
  236.     echo "
  237.     <html>
  238.     <body bgcolor=AA9985 text=000000 link=006666 vlink=006666>
  239.     <center><br><br><br>
  240.     <b>Statistics for Banner No. $bid can't be send because<br>
  241.     there isn't an email associated with client $name<br>
  242.     Please contact the Administrator<br><br></b>
  243.     <a href=javascript:history.go(-1)>Back to Banners Stats</a>
  244.     ";
  245.     } else {
  246.     $result = mysql_query("select bid, imptotal, impmade, clicks, imageurl, clickurl, date from banner where bid='$bid' and cid='$cid'");
  247.     list($bid, $imptotal, $impmade, $clicks, $imageurl, $clickurl, $date) = mysql_fetch_row($result);
  248.         if($impmade==0) {
  249.             $percent = 0;
  250.         } else {
  251.             $percent = substr(100 * $clicks / $impmade, 0, 5);
  252.         }
  253.  
  254.         if($imptotal==0) {
  255.             $left = "Unlimited";
  256.         $imptotal = "Unlimited";
  257.         } else {
  258.             $left = $imptotal-$impmade;
  259.         }
  260.     $fecha = date("F jS Y, h:iA.");
  261.     $subject = "Your Banner Statistics at $sitename";
  262.     $message = "Following are the complete stats for your advertising investment at $sitename:\n\n\nClient Name: $name\nBanner ID: $bid\nBanner Image: $imageurl\nBanner URL: $clickurl\n\nImpressions Purchased: $imptotal\nImpressions Made: $impmade\nImpressions Left: $left\nClicks Received: $clicks\nClicks Percent: $percent%\n\n\nReport Generated on: $fecha";
  263.     $from = "$sitename";
  264.     mail($email, $subject, $message, "From: $from\nX-Mailer: PHP/" . phpversion());
  265.  
  266.     echo "
  267.     <html>
  268.     <body bgcolor=AA9985 text=000000 link=006666 vlink=006666>
  269.     <center><br><br><br>
  270.     <b>Statistics for Banner No. $bid has been send to<br>
  271.     <i>$email</i> of $name<br><br></b>
  272.     <a href=javascript:history.go(-1)>Back to Banners Stats</a>
  273.     ";
  274.     }
  275. }
  276.  
  277. /*********************************************/
  278. /* Function to let the client to change the  */
  279. /* url for his banner                        */
  280. /*********************************************/
  281.  
  282. function change_banner_url_by_client($login, $pass, $cid, $bid, $url) {
  283.     $result = mysql_query("select passwd from bannerclient where cid='$cid'");
  284.     list($passwd) = mysql_fetch_row($result);
  285.     if ($pass==$passwd) {
  286.     mysql_query("update banner set clickurl='$url' where bid='$bid'");
  287.     }
  288.     echo "<center><br>You changed the URL<br><br><a href=javascript:history.go(-1)>Back to Stats Page</a></center>";
  289. }
  290.  
  291. switch($op) {
  292.  
  293.     case "click":
  294.     clickbanner($bid);
  295.     break;
  296.  
  297.     case "login":
  298.     clientlogin();
  299.     break;
  300.  
  301.     case "Ok":
  302.     bannerstats($login, $pass);
  303.     break;
  304.  
  305.     case "Change":
  306.     change_banner_url_by_client($login, $pass, $cid, $bid, $url);
  307.     break;
  308.  
  309.     case "EmailStats":
  310.     EmailStats($login, $cid, $bid, $pass);
  311.     break;
  312.     
  313.     default:
  314.     viewbanner();
  315.     break;
  316. }
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.