Scripts

Ban IP op tijd

Met dit script kun je mensen verbannen tot aan een datum. Je bepaalt zelf de reden en tot wanneer persoon X verbannen is. Overigens wordt niet gechecked op lege velden, etc, omdat ik er van uit ga dat als een veld leeg blijft, de webmaster daar een reden voor heeft. Dat geldt bijvoorbeeld ook bij het verwijderen van een ipadres... je zou met de $_GET kunnen gaan fucken, maar het lijkt mij wel zo logisch om als webmaster niet je database te gaan verneuqen.

ban-ip-op-tijd
Controleren op ipbans gaat gemakkelijk:

<?php
include("ipbancheck.php");
?>

SQL:

[code]CREATE TABLE `ipban` (
  `id` int(5) NOT NULL auto_increment,
  `ip` varchar(255) NOT NULL,
  `reden` varchar(255) NOT NULL,
  `tijd` int(25) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
[/code]


[b]ipbancheck.php[/b]

[code]<?php
// Gelieve de database-gegevens te veranderen a.u.b.
mysql_connect("HOST",  "DB_USER", "DB_PW") or die(mysql_error());
mysql_select_db("DB") or die(mysql_error());

$ip   =   $_SERVER['REMOTE_ADDR'];

$query['select']['result']    =   mysql_query("SELECT * FROM ipban WHERE ip = '". $ip ."' LIMIT 1")   or die(mysql_error());
if (mysql_num_rows($query['select']['result']))
{
    $result   =   mysql_fetch_assoc($query['select']['result']);
    
    $reden    =   htmlspecialchars(stripslashes($result['reden']));
    $tijd     =   htmlspecialchars(stripslashes($result['tijd']));
    $nu       =   time();
    
    $rest = $tijd - $nu;
    if ($rest > 0)
    {
        $tijd     =   date("d-m-Y", $tijd);
        
        die("<h1>:: Error ::</h1>
        <p>Jij bent verbannen van deze website!</p>
        <p>De <strong>reden</strong> hiervoor is:<br />". $reden .".</p>
        <p>De <strong>datum</strong> waarop u onze website weer kunt bezoeken: ". $tijd .", om 12:00:00.</p>
        ");
    }
}
?>
[/code]


(!) --- Hieronder de admin: ---




[b]controle.php[/b]

[code]<?php
session_start();

$wachtwoord = "test";

if (!isset($_SESSION['login']))
{
    if (!isset($_POST['submit']))
    {
        ?>
        
        <p>Gelieve uw wachtwoord hieronder in te voeren.<br />
           Uw wachtwoord is nodig, zodat u alle verbannen ip-adressen kan beheren en toevoegen</p>
           
          <form action="" method="POST">
          <strong>Wachtwoord:</strong><br />
          <input type="password" name="wachtwoord" /><br /><br />
          <input type="submit" name="submit" value="Valideren" />
          </form>
    
    <?php
    exit();
    }
     else
     {
        if ($wachtwoord == $_POST['wachtwoord'])
        {
            $_SESSION['login']    =   TRUE;
            echo "<p>U bent met succes ingelogd!</p>";
        }
         else
         {
            echo "<p><strong>Fout:</strong> U heeft een onjuist wachtwoord ingevoerd!</p>";
            exit();
         }
     }
}
?>
[/code]


[b]index.php[/b]

[code]<?php
// Gelieve de onderstaande gegevens te veranderen a.u.b.
mysql_connect("HOST",  "DB_USER", "DB_PW") or die(mysql_error());
mysql_select_db("DB") or die(mysql_error());

include("controle.php");
define('safe',  true);

echo  "<p>Welkom in de admin. U kunt hier alle verbannen ip-adressen beheren en toevoegen.</p>";

echo "<a href=\"?overzicht\">Overzicht</a><br />
      <a href=\"?toevoegen\">Toevoegen</a>";
      
if (isset($_GET['overzicht']))
{
    include("overzicht.inc.php");
}
 elseif (isset($_GET['toevoegen']))
 {
    include("toevoegen.inc.php");
 }
 
  elseif (isset($_GET['verwijderen']))
 {
    include("verwijderen.inc.php");
 }
?>
[/code]


[b]overzicht.inc.php[/b]

[code]<?php
if (!defined('safe'))
{
    die("<p>Error: Dit bestand kan niet afzonderlijk worden bezocht, wegens veiligheidsredenen.</p>");
}

$query['select']['overzicht']   =   mysql_query("SELECT * FROM ipban LIMIT 500") or die(mysql_error());
echo "<center><table border=\"1\">";
echo "<tr><td><strong>IP-adres</strong></td><td><strong>Reden</strong></td><td><strong>Totdat</strong></td><td><strong>Verwijderen</strong></td></tr>";
while ($overzicht = mysql_fetch_assoc($query['select']['overzicht']))
{
    $ip     =   htmlspecialchars(stripslashes($overzicht['ip']));
    $reden  =   htmlspecialchars(stripslashes($overzicht['reden']));
    $tijd   =   htmlspecialchars(stripslashes($overzicht['tijd']));
    $tijd   =   date("d-m-Y", $tijd);
    
    echo "<tr><td>". $ip ."</td><td>". $reden ."</td><td>". $tijd ."</td><td><a href='?verwijderen=". $overzicht['id'] ."'>Verwijder</a></td></tr>";
}
    
echo "</table><br /><br />PHPerfect Internet Solutions - PHPerfect.nl</center>";
?>
[/code]


[b]toevoegen.inc.php[/b]

[code]<?php
if (!defined('safe'))
{
    die("<p>Error: Dit bestand kan niet afzonderlijk worden bezocht, wegens veiligheidsredenen.</p>");
}

if (!isset($_POST['submit']))
{
    ?>
    <center>
    <p>U kunt hier een ip-adres van uw website verbannen.</p>
    <form action="" method="POST">
    <table border="0">
    <tr><td><strong>Dag:</strong></td><td><select name="dag">
    <?php
    for ($i=0; $i<=31; $i++)
    {
      echo "<option value=\"".  $i  ."\">". $i ."</option>";
    }
    ?></select></td></tr>
    <tr><td><strong>Maand:</strong></td><td><select name="maand">
    <?php
    for ($i=0; $i<=12; $i++)
    {
      echo "<option value=\"".  $i  ."\">". $i ."</option>";
    }
    ?></select></td></tr>
    <tr><td><strong>Jaar:</strong></td><td><select name="jaar">
    <?php
    $y  = date(Y);
    for ($i=$y; $i<=2099; $i++)
    {
      echo "<option value=\"".  $i  ."\">". $i ."</option>";
    }
    ?>
    </select>
    </td></tr>
    <tr><td><strong>IP-adres:</strong></td><td><input type="text" name="ip" size="30" /></td></tr>
    <tr><td><strong>Reden:</strong></td><td><input type="text" name="reden" size="30" /></td></tr>
    <tr><td><strong>Invoeren:</strong></td><td><input type="submit" name="submit" value="Invoeren!" /></td></tr>
    </table>
    </form>
    </center>
    <?php
}
 else
 {
    $dag        =   mysql_real_escape_string(trim($_POST['dag']));
    $maand      =   mysql_real_escape_string(trim($_POST['maand']));
    $jaar       =   mysql_real_escape_string(trim($_POST['jaar']));
    $ip         =   mysql_real_escape_string(trim($_POST['ip']));
    $reden      =   mysql_real_escape_string(trim($_POST['reden']));
    
    $tijd = mktime(12, 00, 00, $maand, $dag, $jaar);
    
    $query['insert']['ipban']   =   mysql_query("INSERT INTO ipban (ip, reden, tijd) VALUES ('".  $ip   ."',  '". $reden  ."',   '". $tijd ."')") or die(mysql_error());
    
    echo "<center><p>Het ip-adres (".htmlspecialchars($ip) .") is met succes verbannen!</p></center>";
 }
?>
[/code]


[b]verwijderen.inc.php[/b]

[code]<?php
try
{
  if (!defined('safe'))
  {
      throw new Exception("<p>Error: Dit bestand kan niet afzonderlijk worden bezocht, wegens veiligheidsredenen.</p>");
  }
  
  if (isset($_GET['verwijderen']))
  {
      $verwijderen  =   mysql_real_escape_string(trim($_GET['verwijderen']));
      $query['delete']['ipban']   =   mysql_query("DELETE FROM ipban WHERE id = '". $verwijderen ."' LIMIT 1") or die(mysql_error());
      echo "<center><p>Dit ip-adres is vanaf heden niet meer verbannen en evt. vroegtijdig van de banlist verwijderd.</p></center>";
  }
}

catch (Exception $e)
{
  echo $e->getMessage();
}
?>
[/code]

Reacties

0
Nog geen reacties.