Webmaster общности: Predpriemach.com | SearchEngines.bg

    Проста Бан система

    Автор: SandPrince

    А сега една много лесна бан система за вашия сайт. Урока е преведен специално за Web-Tourist.

    първо си правим една таблица в БД

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

    Следва да създадем файла който прави връзка с БД
    connect.php

    <?php
    $con = mysql_connect("localhost", "username", "password");
    if(!$con){
    die("Can not connect to database: ".mysql_error());
    }
    $db = mysql_select_db("test_db", $con);
    if(!$db){
    die("Can not select database: ".mysql_error());
    }
    ?>

    Сега следва да си направим админ панела на бан системата – admin.php

    <?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

    <?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!");}
    ?>

    За да защитите вашите страници просто сложете този код във страницата ви:

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

    ……и вашите файлове са защитени!!!