home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 April / PCWorld_2005-04_cd.bin / akce / web / phpnuke / PHP-Nuke-7.5.exe / html / banners.php < prev    next >
PHP Script  |  2004-01-30  |  17KB  |  418 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. $cid=addslashes($cid);
  18. $login=addslashes($login);
  19.  
  20. /********************************************/
  21. /* Function to display banners in all pages */
  22. /********************************************/
  23.  
  24. function viewbanner() {
  25.     global $prefix, $db, $admin, $sitename, $adminmail, $nukeurl;
  26.     if (paid()) {
  27.         return;    
  28.     }
  29.     $numrows = $db->sql_numrows($db->sql_query("SELECT * FROM ".$prefix."_banner WHERE type='0' AND active='1'"));
  30.  
  31. /* Get a random banner if exist any. */
  32. /* More efficient random stuff, thanks to Cristian Arroyo from http://www.planetalinux.com.ar */
  33.  
  34.     if ($numrows>1) {
  35.     $numrows = $numrows-1;
  36.     mt_srand((double)microtime()*1000000);
  37.     $bannum = mt_rand(0, $numrows);
  38.     } else {
  39.     $bannum = 0;
  40.     }
  41.     $sql = "SELECT bid, impmade, imageurl, clickurl, alttext FROM ".$prefix."_banner WHERE type='0' AND active='1' LIMIT $bannum,1";
  42.     $result = $db->sql_query($sql);
  43.     $row = $db->sql_fetchrow($result);
  44.     $bid = $row[bid];
  45.     $imageurl = $row[imageurl];
  46.     $clickurl = $row[clickurl];
  47.     $alttext = $row[alttext];
  48.     if (!is_admin($admin)) {
  49.         $db->sql_query("UPDATE ".$prefix."_banner SET impmade=impmade+1 WHERE bid='$bid'");
  50.     }
  51.     update_points(21);
  52.     if($numrows>0) {
  53.     $sql2 = "SELECT cid, imptotal, impmade, clicks, date FROM ".$prefix."_banner WHERE bid='$bid'";
  54.     $result2 = $db->sql_query($sql2);
  55.     $row2 = $db->sql_fetchrow($result2);
  56.     $cid = $row2[cid];
  57.     $imptotal = $row2[imptotal];
  58.         $imptotal = intval($imptotal);
  59.     $impmade = $row2[impmade];
  60.         $impmade = intval($impmade);
  61.     $clicks = $row2[clicks];
  62.         $clicks = intval($clicks);
  63.     $date = $row2[date];
  64.  
  65. /* Check if this impression is the last one and print the banner */
  66.  
  67.     if (($imptotal <= $impmade) AND ($imptotal != 0)) {
  68.         $db->sql_query("UPDATE ".$prefix."_banner SET active='0' WHERE bid='$bid'");
  69.         $sql3 = "SELECT name, contact, email FROM ".$prefix."_bannerclient WHERE cid='$cid'";
  70.         $result3 = $db->sql_query($sql3);
  71.         $row3 = $db->sql_fetchrow($result3);
  72.         $c_name = $row3[name];
  73.         $c_contact = $row3[contact];
  74.         $c_email = $row3[email];
  75.         if ($c_email != "") {
  76.         $from = "$sitename <$adminmail>";
  77.         $to = "$c_contact <$c_email>";
  78.         $message = ""._HELLO." $c_contact:\n\n";
  79.         $message .= ""._THISISAUTOMATED."\n\n";
  80.         $message .= ""._THERESULTS."\n\n";
  81.         $message .= ""._TOTALIMPRESSIONS." $imptotal\n";
  82.         $message .= ""._CLICKSRECEIVED." $clicks\n";
  83.         $message .= ""._IMAGEURL." $imageurl\n";
  84.         $message .= ""._CLICKURL." $clickurl\n";
  85.         $message .= ""._ALTERNATETEXT." $alttext\n\n";
  86.         $message .= ""._HOPEYOULIKED."\n\n";
  87.         $message .= ""._THANKSUPPORT."\n\n";
  88.         $message .= "- $sitename "._TEAM."\n";
  89.         $message .= "$nukeurl";
  90.         $subject = "$sitename: "._BANNERSFINNISHED."";
  91.         mail($to, $subject, $message, "From: $from\nX-Mailer: PHP/" . phpversion());
  92.         }
  93.     }
  94.     echo"<center><a href=\"banners.php?op=click&bid=$bid\" target=\"_blank\"><img src=\"$imageurl\" border=\"0\" alt='$alttext' title='$alttext'></a></center>";
  95.     }
  96. }
  97.  
  98. /********************************************/
  99. /* Function to redirect the clicks to the   */
  100. /* correct url and add 1 click              */
  101. /********************************************/
  102.  
  103. function clickbanner($bid) {
  104.     global $prefix, $db;
  105.     $sql = "SELECT clickurl FROM ".$prefix."_banner WHERE bid='$bid'";
  106.     $result = $db->sql_query($sql);
  107.     $row = $db->sql_fetchrow($result);
  108.     $db->sql_query("UPDATE ".$prefix."_banner SET clicks=clicks+1 WHERE bid='$bid'");
  109.     Header("Location: $row[clickurl]");
  110. }
  111.  
  112. /********************************************/
  113. /* Function to let your client login to see */
  114. /* the stats                                */
  115. /********************************************/
  116.  
  117. function clientlogin() {
  118.     echo"
  119.     <html>
  120.     <body bgcolor=\"#AA9985\" text=\"#000000\" link=\"#006666\" vlink=\"#006666\">
  121.     <center><br><br><br><br>
  122.     <table width=\"200\" cellpadding=\"0\" cellspacing=\"1\" border=\"0\" bgcolor=\"#000000\"><tr><td>
  123.     <table width=\"100%\" cellpadding=\"5\" cellspacing=\"1\" border=\"0\" bgcolor=\"#FFFFFF\"><tr><td bgcolor=\"#EECFA1\">
  124.     <center><b>Advertising Statistics</b></center>
  125.     </td></tr><tr><td bgcolor=\"#FFFACD\">
  126.     <form action=\"banners.php\" method=\"post\">
  127.     Login: <input type=\"text\" name=\"login\" size=\"12\" maxlength=\"10\"><br>
  128.     Password: <input type=\"password\" name=\"pass\" size=\"12\" maxlength=\"10\"><br>
  129.     <input type=\"hidden\" name=\"op\" value=\"Ok\">
  130.     <input type=\"submit\" value=\"Login\">
  131.     </td></tr><tr><td bgcolor=\"#EECFA1\">
  132.     <font class=\"content\">
  133.     <center>Please type your client information</center>
  134.     </font></form>
  135.     </td></tr></table></td></tr></table>
  136.     </body>
  137.     </html>
  138.     ";
  139. }
  140.  
  141. /*********************************************/
  142. /* Function to display the banners stats for */
  143. /* each client                               */
  144. /*********************************************/
  145.  
  146. function bannerstats($login, $pass) {
  147.     global $prefix, $db, $sitename;
  148.     $sql = "SELECT cid, name, passwd FROM ".$prefix."_bannerclient WHERE login='$login'";
  149.     $result = $db->sql_query($sql);
  150.     $row = $db->sql_fetchrow($result);
  151.     $cid = $row[cid];
  152.     $cid = intval($cid);
  153.     $name = $row[name];
  154.     $passwd = $row[passwd];
  155.     if($login=="" AND $pass=="" OR $pass=="") {
  156.     echo "<center><br>Login Incorrect!!!<br><br><a href=\"javascript:history.go(-1)\">Back to Login Screen</a></center>";
  157.     } else {
  158.     
  159.     if ($pass==$passwd) {
  160.     
  161.     echo"
  162.     <html>
  163.     <body bgcolor=\"#AA9985\" text=\"#000000\" link=\"#006666\" vlink=\"#006666\">
  164.     <center>
  165.     <table border=\"0\" width=\"100%\" cellpadding=\"0\" cellspacing=\"1\" bgcolor=\"#000000\"><tr><td>
  166.     <table border=\"0\" width=\"100%\" cellpadding=\"8\" cellspacing=\"1\" bgcolor=\"#FFFACD\"><tr><td>
  167.     <font class=\"option\">
  168.     <center><b>Current Active Banners for $name</b></center><br>
  169.     </font>
  170.     <table width=\"100%\" border=\"0\"><tr>
  171.     <td bgcolor=\"#887765\"><font color=\"Black\"><center><b>ID</b></td>
  172.     <td bgcolor=\"#887765\"><font color=\"Black\"><center><b>Imp. Made</b></td>
  173.     <td bgcolor=\"#887765\"><font color=\"Black\"><center><b>Imp. Total</b></td>
  174.     <td bgcolor=\"#887765\"><font color=\"Black\"><center><b>Imp. Left</b></td>
  175.     <td bgcolor=\"#887765\"><font color=\"Black\"><center><b>Clicks</b></td>
  176.     <td bgcolor=\"#887765\"><font color=\"Black\"><center><b>% Clicks</b></td>
  177.     <td bgcolor=\"#887765\"><font color=\"Black\"><center><b>Functions</b></td><tr>";
  178.     $sql = "SELECT bid, imptotal, impmade, clicks, date FROM ".$prefix."_banner WHERE cid='$cid' AND active='1'";
  179.     $result = $db->sql_query($sql);
  180.     while ($row = $db->sql_fetchrow($result)) {
  181.     $bid = $row[bid];
  182.     $bid = intval($bid);
  183.     $imptotal = $row[imptotal];
  184.         $imptotal = intval($imptotal);
  185.     $impmade = $row[impmade];
  186.         $impmade = intval($impmade);
  187.     $clicks = $row[clicks];
  188.         $clicks = intval($clicks);
  189.     $date = $row[date];
  190.         if($impmade==0) {
  191.             $percent = 0;
  192.         } else {
  193.             $percent = substr(100 * $clicks / $impmade, 0, 5);
  194.         }
  195.         if($imptotal==0) {
  196.             $left = "Unlimited";
  197.         } else {
  198.             $left = $imptotal-$impmade;
  199.         }
  200.         echo "
  201.         <td bgcolor=\"#AA9985\" align=\"center\"><font color=\"White\">$bid</td>
  202.         <td bgcolor=\"#AA9985\" align=\"center\"><font color=\"White\">$impmade</td>
  203.         <td bgcolor=\"#AA9985\" align=\"center\"><font color=\"White\">$imptotal</td>
  204.     <td bgcolor=\"#AA9985\" align=\"center\"><font color=\"White\">$left</td>
  205.         <td bgcolor=\"#AA9985\" align=\"center\"><font color=\"White\">$clicks</td>
  206.         <td bgcolor=\"#AA9985\" align=\"center\"><font color=\"White\">$percent%</td>
  207.         <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>";
  208.     }
  209.     echo "
  210.     </table>
  211.     <center><br><br>
  212.     Following are your running Banners in $sitename<br><br>";
  213.  
  214.     $sql = "SELECT bid, imageurl, clickurl, alttext FROM ".$prefix."_banner WHERE cid='$cid' AND active='1'";
  215.     $result = $db->sql_query($sql);
  216.     while ($row = $db->sql_fetchrow($result)) {
  217.     $bid = $row[bid];
  218.     $bid = intval($bid);
  219.     $imageurl = $row[imageurl];
  220.     $clickurl = $row[clickurl];
  221.     $alttext = $row[alttext];
  222.  
  223.     $numrows = $db->sql_numrows($result);
  224.     if ($numrows>1) {
  225.         echo "<hr noshade width=\"80%\"><br>";
  226.     }
  227.  
  228.     echo "<img src=\"$imageurl\" border=\"1\"><br>
  229.     <font class=\"content\">Banner ID: $bid<br>
  230.     Send <a href=\"banners.php?op=EmailStats&login=$login&cid=$cid&bid=$bid\">E-Mail Stats</a> for this Banner<br>
  231.     This Banners points to <a href=\"$clickurl\">this URL</a><br>
  232.     <form action=\"banners.php\" method=\"submit\">
  233.     Change URL: <input type=\"text\" name=\"url\" size=\"50\" maxlength=\"200\" value=\"$clickurl\"><br>
  234.     Change Text: <input type=\"text\" name=\"alttext\" size=\"50\" maxlength=\"255\" value=\"$alttext\"><br>
  235.     <input type=\"hidden\" name=\"login\" value=\"$login\">
  236.     <input type=\"hidden\" name=\"bid\" value=\"$bid\">
  237.     <input type=\"hidden\" name=\"pass\" value=\"$pass\">
  238.     <input type=\"hidden\" name=\"cid\" value=\"$cid\">
  239.     <input type=\"submit\" name=\"op\" value=\"Change\"></form></font>";
  240.     }
  241.     echo "
  242.     </td></tr></table></td></tr></table>
  243.     ";
  244.  
  245.  
  246. /* Finnished Banners */
  247.     
  248.     echo "
  249.     <center><br>
  250.     <table border=\"0\" width=\"100%\" cellpadding=\"0\" cellspacing=\"1\" bgcolor=\"000000\"><tr><td>
  251.     <table border=\"0\" width=\"100%\" cellpadding=\"8\" cellspacing=\"1\" bgcolor=\"#FFFACD\"><tr><td>
  252.     <font class=\"option\">
  253.     <center><b>Banners Finished for $name</b></center><br>
  254.     </font>
  255.     <table width=\"100%\" border=\"0\"><tr>
  256.     <td bgcolor=\"#887765\"><font color=\"Black\"><center><b>ID</b></td>
  257.     <td bgcolor=\"#887765\"><font color=\"Black\"><center><b>Impressions</b></td>
  258.     <td bgcolor=\"#887765\"><font color=\"Black\"><center><b>Clicks</b></td>
  259.     <td bgcolor=\"#887765\"><font color=\"Black\"><center><b>% Clicks</b></td>
  260.     <td bgcolor=\"#887765\"><font color=\"Black\"><center><b>Start Date</b></td>
  261.     <td bgcolor=\"#887765\"><font color=\"Black\"><center><b>End Date</b></td>
  262.     <td bgcolor=\"#887765\"><font color=\"Black\"><center><b>Functions</b></td></tr>";
  263.     $sql = "SELECT bid, impmade, clicks, imageurl, date, dateend FROM ".$prefix."_banner WHERE cid='$cid' AND active='0'";
  264.     $result = $db->sql_query($sql);
  265.     while ($row = $db->sql_fetchrow($result)) {
  266.     $bid = $row[bid];
  267.     $bid = intval($bid);
  268.     $impmade = $row[impmade];
  269.         $impmade = intval($impmade);
  270.     $clicks = $row[clicks];
  271.         $clicks = intval($clicks);
  272.     $imageurl = $row[imageurl];
  273.     $date = $row[date];
  274.     $dateend = $row[dateend];
  275.         $percent = substr(100 * $clicks / $impmade, 0, 5);
  276.     echo "
  277.         <tr><td bgcolor=\"#AA9985\" align=\"center\"><font color=\"White\">$bid</td>
  278.         <td bgcolor=\"#AA9985\" align=\"center\"><font color=\"White\">$impmade</td>
  279.         <td bgcolor=\"#AA9985\" align=\"center\"><font color=\"White\">$clicks</td>
  280.     <td bgcolor=\"#AA9985\" align=\"center\"><font color=\"White\">$percent%</td>
  281.         <td bgcolor=\"#AA9985\" align=\"center\"><font color=\"White\">$date</td>
  282.         <td bgcolor=\"#AA9985\" align=\"center\"><font color=\"White\">$dateend</td>
  283.     <td bgcolor=\"#AA9985\" align=\"center\"><font color=\"White\"><a href=\"$imageurl\" target=\"new\">View Banner</a></td></tr>";
  284.     }
  285. echo "
  286. </table></td></tr></table></td></tr></table>
  287. <br><a href=\"http://phpnuke.org\"><img src=\"images/powered/phpnuke.gif\" border=\"0\" Alt=\"This site Powered by PHP-Nuke\"></a>
  288. </body>
  289. </html>
  290. ";
  291.     
  292.     } else {
  293.     echo "<center><br>Login Incorrect!!!<br><br><a href=\"javascript:history.go(-1)\">Back to Login Screen</a></center>";
  294.     }
  295. }
  296. }
  297.  
  298. /*********************************************/
  299. /* Function to let the client E-mail his     */
  300. /* banner Stats                              */
  301. /*********************************************/
  302.  
  303. function EmailStats($login, $cid, $bid, $pass) {
  304.     global $prefix, $db;
  305.     $sql = "SELECT name, email FROM ".$prefix."_bannerclient WHERE cid='$cid'";
  306.     $rsult = $db->sql_query($sql);
  307.     $row = $db->sql_fetchrow($result);
  308.     $name = $row[name];
  309.     $email = $row[email];
  310.     if ($email=="") {
  311.     echo "
  312.     <html>
  313.     <body bgcolor=\"#AA9985\" text=\"#000000\" link=\"#006666\" vlink=\"#006666\">
  314.     <center><br><br><br>
  315.     <b>Statistics for Banner No. $bid can't be send because<br>
  316.     there isn't an email associated with client $name<br>
  317.     Please contact the Administrator<br><br></b>
  318.     <a href=\"javascript:history.go(-1)\">Back to Banners Stats</a>
  319.     ";
  320.     } else {
  321.     $sql2 = "SELECT bid, imptotal, impmade, clicks, imageurl, clickurl, date FROM ".$prefix."_banner WHERE bid='$bid' AND cid='$cid'";
  322.     $result2 = $db->sql_query($sql2);
  323.     $row2 = $db->sql_fetchrow($result2);
  324.     $bid = $row2[bid];
  325.     $bid = intval($bid);
  326.     $imptotal = $row2[imptotal];
  327.         $imptotal = intval($imptotal);
  328.     $impmade = $row2[impmade];
  329.         $impmade = intval($impmade);
  330.     $clicks = $row2[clicks];
  331.         $clicks = intval($clicks);
  332.     $imageurl = $row2[imageurl];
  333.     $clickurl = $row2[clickurl];
  334.     $date = $row2[date];
  335.         if($impmade==0) {
  336.             $percent = 0;
  337.         } else {
  338.             $percent = substr(100 * $clicks / $impmade, 0, 5);
  339.         }
  340.         if($imptotal==0) {
  341.             $left = "Unlimited";
  342.         $imptotal = "Unlimited";
  343.         } else {
  344.             $left = $imptotal-$impmade;
  345.         }
  346.     $fecha = date("F jS Y, h:iA.");
  347.     $subject = "Your Banner Statistics at $sitename";
  348.     $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";
  349.     $from = "$sitename";
  350.     mail($email, $subject, $message, "From: $from\nX-Mailer: PHP/" . phpversion());
  351.     echo "
  352.     <html>
  353.     <body bgcolor=\"#AA9985\" text=\"#000000\" link=\"#006666\" vlink=\"#006666\">
  354.     <center><br><br><br>
  355.     <b>Statistics for Banner No. $bid has been send to<br>
  356.     <i>$email</i> of $name<br><br></b>
  357.     <a href=\"javascript:history.go(-1)\">Back to Banners Stats</a>
  358.     ";
  359.     }
  360. }
  361.  
  362. /*********************************************/
  363. /* Function to let the client to change the  */
  364. /* url for his banner                        */
  365. /*********************************************/
  366.  
  367. function change_banner_url_by_client($login, $pass, $cid, $bid, $url, $alttext) {
  368.     global $prefix, $db;
  369.     $sql = "SELECT passwd FROM ".$prefix."_bannerclient WHERE cid='$cid'";
  370.     $result = $db->sql_query($sql);
  371.     $row = $db->sql_fetchrow($result);
  372.     $passwd = $row[passwd];
  373.     if (!empty($pass) AND $pass==$passwd) {
  374.     $alttext = ereg_replace("\"", "", $alttext);
  375.     $alttext = ereg_replace("'", "", $alttext);
  376.     $db->sql_query("UPDATE ".$prefix."_banner SET clickurl='$url', alttext='$alttext' WHERE bid='$bid'");
  377.     echo "<br><center>";
  378.     if ($url != "") {
  379.         echo "You changed the URL<br>";
  380.     }
  381.     if ($alttext != "") {
  382.         echo "You changed the Alternate Text";
  383.     }
  384.     echo "<br><br><a href=\"javascript:history.go(-1)\">Back to Stats Page</a></center>";
  385.     } else {
  386.     echo "<center><br>Your login/password doesn't match.<br><br>Please <a href=\"banners.php?op=login\">login again</a></center>";
  387.     }
  388.     
  389. }
  390.  
  391. switch($op) {
  392.  
  393.     case "click":
  394.     clickbanner($bid);
  395.     break;
  396.  
  397.     case "login":
  398.     clientlogin();
  399.     break;
  400.  
  401.     case "Ok":
  402.     bannerstats($login, $pass);
  403.     break;
  404.  
  405.     case "Change":
  406.     change_banner_url_by_client($login, $pass, $cid, $bid, $url, $alttext);
  407.     break;
  408.  
  409.     case "EmailStats":
  410.     EmailStats($login, $cid, $bid, $pass);
  411.     break;
  412.     
  413.     default:
  414.     viewbanner();
  415.     break;
  416. }
  417.  
  418. ?>