Strict Standards: Resource ID#18 used as offset, casting to integer (18) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#23 used as offset, casting to integer (23) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#25 used as offset, casting to integer (25) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Скрипт антифлуда
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


 Страниц (1): [1]   

> Без описания
Alone
Отправлено: 12 Ноября, 2005 - 15:33:53
Post Id



Super Member


Покинул форум
Сообщений всего: 2393
Дата рег-ции: Дек. 2004  

Карма 8




Нашёл скриптик антифлуда. Ставится на любую странчку и закрывает доступ на столько времени насколько указываешь в скрипте.
Но чё-то не работает. Не пойму.
Вот сам скрипт:

CODE:
<?php

$ipLog='ip.txt'; // Your logfiles name here
$timeout='24'; // How many hours to block IP
$goHere='add.php'; // Allowed pages name here

// PHP script by Dave Lauderdale
// Published at: www.digi-dl.com

function record($REMOTE_ADDR,$ipLog,$goHere)
{
$log=fopen("$ipLog", "a+");
fputs ($log,$REMOTE_ADDR."][".time()."\n");
fclose($log);
Header ("Location: $goHere"); exit(0);
}
function check($REMOTE_ADDR,$ipLog,$timeout)
{
global $valid; $ip=$REMOTE_ADDR;
$data=file("$ipLog"); $now=time();

foreach ($data as $record)
{
$subdata=explode("][",$record);
if ($now < ($subdata[1]+3600*$timeout) && $ip == $subdata[0])
{
$valid=0; echo "Здравствуйте! Это система антифлуда. Данная страница будет доступна для вас снова через $timeout часов.";
break;
}
}
}
check($REMOTE_ADDR,$ipLog,$timeout);
if ($valid!="0") record($REMOTE_ADDR,$ipLog,$goHere);

?>



Файл ip.txt создал, всё находится в одной папке.
Признаки не работы: не открывается страница.
Что тут не так делаю?
 
 Top
AztEK
Отправлено: 13 Ноября, 2005 - 02:13:04
Post Id


Newbie


Покинул форум
Сообщений всего: 10
Дата рег-ции: Авг. 2005  

Карма 0




Возможные ошибки:
1)register_globals = Off, не определяется $REMOTE_ADDR, тогда надо getenv('REMOTE_ADDR'Подмигивание

2)Плохо написан последний кусок. Я бы написал так:
CODE:

function check($REMOTE_ADDR,$ipLog,$timeout)
{
global $valid;
$ip=$REMOTE_ADDR;
$data=file("$ipLog");
$now=time();

foreach ($data as $record)
{
$subdata=explode("][",$record);
if ($now < ($subdata[1]+3600*$timeout) && $ip == $subdata[0])
{
$valid=0;
echo "Здравствуйте! Это система антифлуда. Данная страница будет доступна для вас снова через $timeout часов.";
break;
}
else
{
$value = 1;
}
}
}
check($REMOTE_ADDR,$ipLog,$timeout);
if (!$valid) record($REMOTE_ADDR,$ipLog,$goHere);
 
 Top
Alone
Отправлено: 13 Ноября, 2005 - 12:44:22
Post Id



Super Member


Покинул форум
Сообщений всего: 2393
Дата рег-ции: Дек. 2004  

Карма 8




Не фига...

А никто не знает какой-нить такой же попроще скриптик антифлуда?
Т.е. надо не пускать юзера 1 час на страницу после его посещения этой страницы...
 
 Top
AztEK
Отправлено: 14 Ноября, 2005 - 09:54:25
Post Id


Newbie


Покинул форум
Сообщений всего: 10
Дата рег-ции: Авг. 2005  

Карма 0




Ну а самому - этож не сложно!
Называется это не антифлуд!

toETC
Буду знать. Вы бы лучше модифицировали чтобы php код подсвечивался через highlight!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 3 (гостей: 3, зарегистрированных: 0, скрытых: 0)
« PHP/Perl »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 



Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0313]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33