Просмотр полной версии : php скрипт бана
вот допустем у меня воляется файл пхп бана по ip в дирректории /video с названием ban.php и когда пользователь с каким-то ip переходит на ссылку /video/ban.php то его ip автоматически банится на дирректорию /video
Такой скрипт возможен?
что мешает инклудить ban.php в файл index.php и т.п. которые входят в директорию video ? (если верно я тебя понимаю)
То есть...
Инклудим ban.php, дальше он проверяет айпи в бане... в случае если айпи в бане найден то выдает на страницу указанный текст
Хотя можно как то с помощью глобальных переменных (так будет проще)(но я еще их не изучал)
BrainDeaD
16.06.2009, 19:52
да. пример:
<?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();
} ?>
да. пример:
<?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();
} ?>
Если будет ссылка на этот скрипт,то пользователь перейдя по ссылке http://www.yoursite.com/ban.php будет забанен на http://www.yoursite.com ?
BrainDeaD
16.06.2009, 20:16
нет
Тогда для чего этот скрипт?
BrainDeaD
16.06.2009, 20:23
чтобы не пускать на определённую страницу. если их несколько, то можно вставить скрипт и в другие файлы, а ip зачитывать в переменную из базы данных, например. я в php не асс, может меня поправят.
Тогда для чего этот скрипт?
ban.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
include("ban.php");
if ($i == 1){
echo "Вы забанены!";
exit();
}
?>
Вроде как то так...
Сам не тестил но должно по идее работать (можно покороче вроде все это сделать но я в этом не силен)
мне нужно что бы юзер если перешёл по ссылке http://мой сайт/video/ban.php полность банился на всю деррикторию http://мой сайт/video по ip.
мне нужно что бы юзер если перешёл по ссылке http://мой сайт/video/ban.php полность банился на всю деррикторию http://мой сайт/video по ip.
Кароче .htaccess тебе в помощь...
fopen и fwrite тебе должны помочь по идее
тоесть саморучно вставлять?
Не не вариант за каждым следить.
но всё равно всем спасибо хоть за дискусию.
erihtoney
16.06.2009, 22:45
<?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
Хм,а как по этому скрипту будут банится ip?
На обум??
Хм,а как по этому скрипту будут банится ip?
На обум??
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
Deathdreams
17.06.2009, 01:37
$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);
}
как пример,банить через хтакес
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot