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 / admin / modules / ipban.php < prev    next >
PHP Script  |  2004-07-31  |  7KB  |  161 lines

  1. <?php
  2.  
  3. /************************************************************************/
  4. /* PHP-NUKE: Web Portal System                                          */
  5. /* ===========================                                          */
  6. /*                                                                      */
  7. /* Copyright (c) 2004 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. if (!eregi("admin.php", $_SERVER['PHP_SELF'])) { die ("Access Denied"); }
  16. global $prefix, $db;
  17. $aid = substr("$aid", 0,25);
  18. $row = $db->sql_fetchrow($db->sql_query("SELECT radminsuper FROM " . $prefix . "_authors WHERE aid='$aid'"));
  19. if ($row['radminsuper'] == 1) {
  20.  
  21. function main_ban($ip=0) {
  22.     global $prefix, $db, $bgcolor2;
  23.     include ("header.php");
  24.     GraphicAdmin();
  25.     OpenTable();
  26.     echo "<center><font class=\"title\"><b>"._IPBANSYSTEM."</b></font></center>";
  27.     CloseTable();
  28.     echo "<br>";
  29.     OpenTable();
  30.     echo "<center><b>"._BANNEWIP."</b><br><br>";
  31.     echo "<form action='admin.php' method='post'>";
  32.     if ($ip != 0) {
  33.         $ip = explode(".", $ip);
  34.         echo "<input type='text' name='ip1' size='4' maxlength='3' value='$ip[0]'> . <input type='text' name='ip2' size='4' maxlength='3' value='$ip[1]'> . <input type='text' name='ip3' size='4' maxlength='3' value='$ip[2]'> . <input type='text' name='ip4' size='4' maxlength='3' value='$ip[3]'>";
  35.     } else {
  36.         echo "<input type='text' name='ip1' size='4' maxlength='3'> . <input type='text' name='ip2' size='4' maxlength='3'> . <input type='text' name='ip3' size='4' maxlength='3'> . <input type='text' name='ip4' size='4' maxlength='3'>";
  37.     }
  38.     echo "<br><br><b>"._REASON."</b><br><input type='text' name='reason' size='50' maxlength='255'><br><br><input type='hidden' name='op' value='save_banned'><input type='submit' value='Ban this IP'></center>";
  39.     echo "</form>";
  40.     CloseTable();
  41.     $numrows = $db->sql_numrows($db->sql_query("SELECT * from ".$prefix."_banned_ip"));
  42.     if ($numrows != 0) {
  43.         echo "<br>";
  44.         OpenTable();
  45.         echo "<center><font class=\"title\"><b>"._IPBANNED."</b></font><br><br></center>"
  46.             ."<table border=\"0\" align='center'>"
  47.             ."<tr><td bgcolor=\"$bgcolor2\" align='left'> <b><font class=\"content\">"._IPBANNED."</b> </td>"
  48.             ."<td bgcolor=\"$bgcolor2\" align='left'> <b><font class=\"content\">"._REASON."</b> </td>"
  49.             ."<td bgcolor=\"$bgcolor2\" align='center'><font class=\"content\"> <b>"._BANDATE."</b> </td>"
  50.             ."<td bgcolor=\"$bgcolor2\" align='center'><font class=\"content\"> <b>"._FUNCTIONS."</b> </td></tr>";
  51.         $result = $db->sql_query("SELECT * from ".$prefix."_banned_ip ORDER by date DESC");
  52.         while ($row = $db->sql_fetchrow($result)) {
  53.             echo "<tr><td bgcolor=\"$bgcolor2\" align='left'> <font class=\"content\">$row[ip_address]</td>"
  54.                 ."<td bgcolor=\"$bgcolor2\" align='center'><font class=\"content\"> $row[reason] </td>"
  55.                 ."<td bgcolor=\"$bgcolor2\" align='center'><font class=\"content\"> $row[date] </td>"
  56.                 ."<td bgcolor=\"$bgcolor2\" align='center'><font class=\"content\"><a href=\"admin.php?op=ipban_delete&id=$row[id]&ok=0\">"._UNBAN."</a></td></tr>";
  57.         }
  58.         echo "</table>";
  59.         CloseTable();
  60.     }
  61.     include("footer.php");
  62. }
  63.  
  64. function save_banned($ip1, $ip2, $ip3, $ip4, $reason) {
  65.     global $prefix, $db;
  66.     include ("header.php");
  67.     GraphicAdmin();
  68.     OpenTable();
  69.     echo "<center><font class=\"title\"><b>"._IPBANSYSTEM."</b></font></center>";
  70.     CloseTable();
  71.     echo "<br>";
  72.     OpenTable();
  73.     if (substr($ip2, 0, 2) == 00) { $ip2 = ereg_replace("00", "", $ip2); }
  74.     if (substr($ip3, 0, 2) == 00) { $ip3 = ereg_replace("00", "", $ip3); }
  75.     if (substr($ip4, 0, 2) == 00) { $ip4 = ereg_replace("00", "", $ip4); }
  76.     $ip = "$ip1.$ip2.$ip3.$ip4";
  77.     if ($ip1 == "" OR $ip2 == "" OR $ip3 == "" OR $ip4 == "") {
  78.         echo "<center><b>"._ERROR."</b> "._IPOUTRANGE."<br><br>"._IPENTERED." <b>$ip1.$ip2.$ip3.$ip4</b><br><br>"._GOBACK."</center>";
  79.         CloseTable();
  80.         include("footer.php");
  81.         die();
  82.     }
  83.     if (!is_numeric($ip1) && !empty($ip1) OR !is_numeric($ip2) && !empty($ip2) OR !is_numeric($ip3) && !empty($ip3) OR !is_numeric($ip4) && !empty($ip4)) {
  84.         echo "<center><b>"._ERROR."</b> "._IPNUMERIC."<br><br>"._IPENTERED." <b>$ip1.$ip2.$ip3.$ip4</b><br><br>"._GOBACK."</center>";
  85.         CloseTable();
  86.         include("footer.php");
  87.         die();
  88.     }
  89.     if ($ip1 > 255 OR $ip2 > 255 OR $ip3 > 255 OR $ip4 > 255) {
  90.         echo "<center><b>"._ERROR."</b> "._IPOUTRANGE."<br><br>"._IPENTERED." <b>$ip1.$ip2.$ip3.$ip4</b><br><br>"._GOBACK."</center>";
  91.         CloseTable();
  92.         include("footer.php");
  93.         die();
  94.     }
  95.     if (substr($ip1, 0, 1) == 0) {
  96.         echo "<center><b>"._ERROR."</b> "._IPSTARTZERO."<br><br>"._IPENTERED." <b>$ip1.$ip2.$ip3.$ip4</b><br><br>"._GOBACK."</center>";
  97.         CloseTable();
  98.         include("footer.php");
  99.         die();    
  100.     }
  101.     if ($ip == "127.0.0.1") {
  102.         echo "<center><b>"._ERROR."</b> "._IPLOCALHOST."<br><br>"._IPENTERED." <b>127.0.0.1</b><br><br>"._GOBACK."</center>";
  103.         CloseTable();
  104.         include("footer.php");
  105.         die();    
  106.     }
  107.     $my_ip = $_SERVER["REMOTE_ADDR"];
  108.     if ($ip == $my_ip) {
  109.         echo "<center><b>"._ERROR."</b> "._IPYOURS."<br><br>"._IPENTERED." <b>$ip</b><br><br>"._GOBACK."</center>";
  110.         CloseTable();
  111.         include("footer.php");
  112.         die();
  113.     }
  114.     $date = date("Y-m-d");
  115.     $db->sql_query("INSERT INTO ".$prefix."_banned_ip VALUES (NULL, '$ip', '$reason', '$date')");
  116.     echo "<center>"._SUCCESS."<br><br>"._THEIP." <b>$ip</b> "._HASBEENBANNED."</center>";
  117.     CloseTable();
  118.     include("footer.php");
  119. }
  120.  
  121. function ipban_delete($id, $ok) {
  122.     global $prefix, $db;
  123.     $row = $db->sql_fetchrow($db->sql_query("SELECT * FROM ".$prefix."_banned_ip WHERE id='$id'"));
  124.     if ($ok == 0) {
  125.         include ("header.php");
  126.         GraphicAdmin();
  127.         OpenTable();
  128.         echo "<center><font class=\"title\"><b>"._IPBANSYSTEM."</b></font></center>";
  129.         CloseTable();
  130.         echo "<br>";
  131.         OpenTable();
  132.         echo "<center>"._SURETOBANIP." <b>$row[ip_address]</b><br><br>[ <a href='admin.php?op=ipban_delete&id=$id&ok=1'>"._YES."</a> | <a href='admin.php?op=ipban'>"._NO."</a> ]";
  133.         CloseTable();
  134.         include("footer.php");
  135.     } elseif ($ok == 1) {
  136.         $db->sql_query("DELETE FROM ".$prefix."_banned_ip WHERE id='$id'");
  137.         Header("Location: admin.php?op=ipban");    
  138.     }
  139. }
  140.  
  141. switch($op) {
  142.  
  143.     case "ipban":
  144.     main_ban($ip);
  145.     break;
  146.     
  147.     case "save_banned":
  148.     save_banned($ip1, $ip2, $ip3, $ip4, $reason);
  149.     break;
  150.  
  151.     case "ipban_delete":
  152.     ipban_delete($id, $ok);
  153.     break;
  154.     
  155. }
  156.  
  157. } else {
  158.     echo "Access Denied";
  159. }
  160.  
  161. ?>