php скрипт бана

Discussion in 'PHP' started by mixdw, 16 Jun 2009.

  1. mixdw

    mixdw Banned

    Joined:
    27 Mar 2008
    Messages:
    81
    Likes Received:
    30
    Reputations:
    0
    вот допустем у меня воляется файл пхп бана по ip в дирректории /video с названием ban.php и когда пользователь с каким-то ip переходит на ссылку /video/ban.php то его ip автоматически банится на дирректорию /video

    Такой скрипт возможен?
     
  2. diznt

    diznt Elder - Старейшина

    Joined:
    31 Jan 2008
    Messages:
    432
    Likes Received:
    164
    Reputations:
    -19
    что мешает инклудить ban.php в файл index.php и т.п. которые входят в директорию video ? (если верно я тебя понимаю)
    То есть...
    Инклудим ban.php, дальше он проверяет айпи в бане... в случае если айпи в бане найден то выдает на страницу указанный текст

    Хотя можно как то с помощью глобальных переменных (так будет проще)(но я еще их не изучал)
     
    #2 diznt, 16 Jun 2009
    Last edited: 16 Jun 2009
  3. BrainDeaD

    BrainDeaD Elder - Старейшина

    Joined:
    9 Jun 2005
    Messages:
    774
    Likes Received:
    292
    Reputations:
    214
    да. пример:

    PHP:
    <?php
    $deny 
    = array("111.111.111.111""222.222.222.222""333.333.333.333");
    if (
    in_array ($_SERVER['REMOTE_ADDR'], $deny)) {
       
    header("location: http://www.yoursite.com/reject.html");
       exit();
    ?>
     
  4. mixdw

    mixdw Banned

    Joined:
    27 Mar 2008
    Messages:
    81
    Likes Received:
    30
    Reputations:
    0
    мне нужен сам скрипт)))
     
  5. mixdw

    mixdw Banned

    Joined:
    27 Mar 2008
    Messages:
    81
    Likes Received:
    30
    Reputations:
    0
    Если будет ссылка на этот скрипт,то пользователь перейдя по ссылке http://www.yoursite.com/ban.php будет забанен на http://www.yoursite.com ?
     
  6. BrainDeaD

    BrainDeaD Elder - Старейшина

    Joined:
    9 Jun 2005
    Messages:
    774
    Likes Received:
    292
    Reputations:
    214
    нет
     
  7. mixdw

    mixdw Banned

    Joined:
    27 Mar 2008
    Messages:
    81
    Likes Received:
    30
    Reputations:
    0
    Тогда для чего этот скрипт?
     
  8. BrainDeaD

    BrainDeaD Elder - Старейшина

    Joined:
    9 Jun 2005
    Messages:
    774
    Likes Received:
    292
    Reputations:
    214
    чтобы не пускать на определённую страницу. если их несколько, то можно вставить скрипт и в другие файлы, а ip зачитывать в переменную из базы данных, например. я в php не асс, может меня поправят.
     
  9. diznt

    diznt Elder - Старейшина

    Joined:
    31 Jan 2008
    Messages:
    432
    Likes Received:
    164
    Reputations:
    -19
    ban.php
    PHP:
    <?php 
    $deny 
    = array("111.111.111.111""222.222.222.222""333.333.333.333"); 
    if (
    in_array ($_SERVER['REMOTE_ADDR'], $deny)) { 
       
    $i 1//Присваеваем 1 если юзер забанен
    ?>
    index.php и другие скрипты (этот ниже код нужно вставлять в те скрипты куда нужно не пускать юзера если он забанен)

    PHP:
    <?php 
     
    include("ban.php");
     if (
    $i == 1){
     echo 
    "Вы забанены!";
     exit();
    }
    ?>
    Вроде как то так...
    Сам не тестил но должно по идее работать (можно покороче вроде все это сделать но я в этом не силен)
     
    #9 diznt, 16 Jun 2009
    Last edited: 16 Jun 2009
  10. mixdw

    mixdw Banned

    Joined:
    27 Mar 2008
    Messages:
    81
    Likes Received:
    30
    Reputations:
    0
    мне нужно что бы юзер если перешёл по ссылке http://мой сайт/video/ban.php полность банился на всю деррикторию http://мой сайт/video по ip.
     
  11. diznt

    diznt Elder - Старейшина

    Joined:
    31 Jan 2008
    Messages:
    432
    Likes Received:
    164
    Reputations:
    -19
    Кароче .htaccess тебе в помощь...
    fopen и fwrite тебе должны помочь по идее
     
  12. mixdw

    mixdw Banned

    Joined:
    27 Mar 2008
    Messages:
    81
    Likes Received:
    30
    Reputations:
    0
    тоесть саморучно вставлять?
    Не не вариант за каждым следить.
    но всё равно всем спасибо хоть за дискусию.
     
  13. erihtoney

    erihtoney Member

    Joined:
    3 Mar 2009
    Messages:
    91
    Likes Received:
    73
    Reputations:
    20
    PHP:
    <?php
    $file
    ="ban.list"// файл
    fclose(fopen($file,"a+b")); // если файл есть ничего не произойдет, если же нет-новый файл
    $f=fopen($file,"r+t"); // открытие
    flock($f,LOCK_EX); // блокировка
    $filer=file_get_contents($file);
    $ip_array=explode("\n",$filer);
    $ip=$_SERVER[REMOTE_ADDR];
    $search=array_search($ip,$ip_array,true);
    if(
    $search){
        echo 
    "You are baned";
    }
    else{
        
    $write="$ip\n";
        
    fwrite($f,$write); // запись
    }

    fclose($f); // закрытие

    ?>
    И инклудите во все файлы в директории /video
     
  14. mixdw

    mixdw Banned

    Joined:
    27 Mar 2008
    Messages:
    81
    Likes Received:
    30
    Reputations:
    0
    Хм,а как по этому скрипту будут банится ip?
    На обум??
     
    #14 mixdw, 16 Jun 2009
    Last edited: 16 Jun 2009
  15. diznt

    diznt Elder - Старейшина

    Joined:
    31 Jan 2008
    Messages:
    432
    Likes Received:
    164
    Reputations:
    -19
    http://www.google.ru/search?client=opera&rls=en&q=%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B+php&sourceid=opera&ie=utf-8&oe=utf-8
     
  16. Deathdreams

    Deathdreams Elder - Старейшина

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    PHP:
    $write '<center><b>you are banned</b></center>'//что вывести когда будет забанен
    $file '.htaccess'//будем через хтакес банить
    fclose(fopen($file,"a+b")); //создаст если что
    $ban = array();
    $ban file($file);
    $ban explode("\r\n",$ban);
    if (
    in_array($_SERVER['REMOTE_ADDR'], $ban)) {
    die(
    $write);
    }else{
    $what "deny from ".$_SERVER['REMOTE_ADDR'];
    $fp_access fopen($file,"r+t");
    fwrite($fp_access$what."\r\n"); 
    fclose($fp_access);
    die(
    $write);
    }
    как пример,банить через хтакес