home *** CD-ROM | disk | FTP | other *** search
/ Internet Magazine 2003 May / INTERNET103.ISO / pc / software / windows / building / php_nuke / html / banners.php < prev    next >
Encoding:
PHP Script  |  2002-09-16  |  15.2 KB  |  350 lines

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