PDA

View Full Version : How to ban ppl from your site using PHP and MYSQL


Fronix
02-01-2008, 06:32 PM
This is how you ban ppl from your site using PHP and MySQL

First the tabels.sql

CREATE TABLE `banned_ip` (
`id` INT( 25 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`ip` VARCHAR( 25 ) NOT NULL ,
`reason` TEXT NOT NULL
)

Import it to your mysql database

Now the Connect.php file
$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());
}

Just make an php file called connect.php

And ofc you need an admin panel :D
<?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;

}

?>

Now you make another file called bans.php
<?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!");}
?>

Just add this code to your files and you can ban :D

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

I hope someone has use for this XD

davidj
02-18-2008, 06:15 AM
did you get this sorted