Ban IPs Using MySQL
Posted: Sun May 09, 2010 1:14 pm
First you must make a tables into your database:
tables.sql:
admin.php
bans.php
tables.sql:
Code: Select all
connect.php
CREATE TABLE `banned_ip` (
`id` INT( 25 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`ip` VARCHAR( 25 ) NOT NULL ,
`reason` TEXT NOT NULL
)
Code: Select all
Now admin panel$con = mysql_connect("localhost", "test", "test");
if(!$con){
die("Can not connect to database: ".mysql_error());
}
$db = mysql_select_db("test", $con);
if(!$db){
die("Can not select database: ".mysql_error());
}
admin.php
Code: Select all
Well now make another file called <?php
include("connect.php");
//This function will display the banning form
function ban(){
echo "<form action='?act=ban' method='post'>"
."<table width='500' border='1'>
<tr>
<td><center><font size='+2'>Ban!</font></center></td>
</tr>
<tr>
<td>IP:<br> <input type='text' name='ip' size='30' /><br />
Reason:<br />
<textarea rows='10' cols='55' name='reason'></textarea><br>
<input type='submit' value='Ban!'>
</td>
</tr>
</table>";
echo "<br><br>";
//Let's connect to database and choose the database
$result = mysql_query("SELECT * FROM banned_ip");
$rows = mysql_num_rows($result);
if($rows > 0){
//Display banned IPs
echo "<table width='700' border='1'>
<tr>
<td><center><font size='+2'>Banned IPs</font></center></td>
</tr>
<tr>
<td>";
echo "<table border='1' width='100%'>"
."<tr>"
."<td width='25%'><b>Id</b></td><td width='25%'><b>Ip</b></td><td width='25%'><b>Reason</b></td><td width='25%'><b>Action</b></td>"
."</tr>";
while($row = mysql_fetch_array($result)){
echo "<tr><td width='25%'>".$row['id']."</td><td width='25%'>".$row['ip']."</td><td width='25%'>".$row['reason']."</td><td width='25%'><a href='?act=del&id=".$row['id']."'>Delete</a></td></tr>";
}
echo "</table>";
echo "</td>
</tr>
</table>";
}
}
//This function will ban a IP
function ban_ip(){
$ip = $_REQUEST['ip'];
$reason = $_REQUEST['reason'];
//If there are errors display them in here
if(empty($ip)){
die("Please insert a IP!");
}
if(empty($reason)){
die("Please insert a reason!");
}
//Let's insert this ip and reason into your database
$insert = mysql_query("INSERT INTO banned_ip (ip, reason) VALUES ('$ip', '$reason')");
//If there was problems with inserting those things into database, lets display the error
if(!$insert){
die(mysql_error());
}
echo "<table width='500' border='1'>"
."<tr>"
."<td><center>Info</center></td>"
."</tr>"
."<tr>"
."<td><br>IP: <b>$ip</b> was banned, Reason: <b>$reason</b><br><a href='admin.php'>Back</a><br></td>"
."</tr>"
."</table>";
}
//This function will delete banned ip
function del(){
$id = $_GET['id'];
$del = mysql_query("DELETE FROM banned_ip WHERE id='$id'");
//If there's problem with deleting then display an error
if(!$del){
die(mysql_error());
}
echo "<table width='500' border='1'>"
."<tr>"
."<td><center>Info</center></td>"
."</tr>"
."<tr>"
."<td><br>Ban deleted, <a href='admin.php'>Go back</a><br></td>"
."</tr>"
."</table>";
}
switch($act){
default;
ban();
break;
case "ban";
ban_ip();
break;
case "del";
del();
break;
}
?>
bans.php
Code: Select all
just add this code to your files and your stuff is protected
<?php
include("connect.php");
$ip = $_SERVER['REMOTE_ADDR'];
$find_ip = mysql_query("SELECT * FROM banned_ip WHERE ip='$ip'");
$ban = mysql_fetch_array($find_ip);
if($ip == $ban['ip']){ die("You are banned from this site!");}
?>
Code: Select all
and your files are protected.. wahooo;<?php
include("bans.php");
?>