Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Анти флуд

Сообщения:  [1-10]   [11-19] 

 
 автор: Loki   (03.11.2005 в 12:30)   письмо автору
 
   для: ZetRider   (03.11.2005 в 11:35)
 

Так же как вы выводите данные на экран: открыли файл и начали читать из него данные, сравнивая их с условием.

   
 
 автор: ZetRider   (03.11.2005 в 11:35)   письмо автору
 
   для: ZetRider   (02.11.2005 в 13:51)
 

вот типа запись времени и айпи
<?
$ip = getenv("REMOTE_ADDR");
$time = date("H:i:s");
$browser = str_replace (" ", "_", $HTTP_USER_AGENT);
$fp = @fopen("snif.log", "a");
@fputs($fp, "IP: $ip ; time: $time<br>");
@fclose($fp);
echo "$ip, $time";
?>
а как сделать проверку?

   
 
 автор: ZetRider   (02.11.2005 в 13:51)   письмо автору
 
   для: Loki   (02.11.2005 в 12:45)
 

ага) правильно... так, во идея в отдельный файл записывать айпи и время, и проверять.

   
 
 автор: Loki   (02.11.2005 в 12:45)   письмо автору
 
   для: ZetRider   (02.11.2005 в 11:35)
 

На самом деле, придется взять код, отвечающий за считывание данных из файла. Причем, желательно считывать их с конца, чтобы не гонять цикл лишный раз:
считываете последнюю строку: проверяете. Если тогин такой же как введен, а дата сообщения больше чем текущая минус 1 минута, то говорите что нельзя добавлять так часто.
А если вы хотите задействовать другой способ, то придется считывать последовательно все сообщения и проверять их на "похожесть".

   
 
 автор: ZetRider   (02.11.2005 в 11:35)   письмо автору
 
   для: Loki   (02.11.2005 в 09:19)
 

внедрить вот етот код
<?
setcookie("waitnow", "true", time()+120);
?>
<?
if(isset($_COOKIE['waitnow'])) {
...код...
} else {
...код...
}
?>

в етот

<?php
$files = "log/gb.txt"; // путь к текстовой БД
if ( $email=="" ) {$email="нет";}
if ( $url=="" ) {$url="нет";}
$mesg=eregi_replace("<","",$mesg);
$mesg=eregi_replace(">","",$mesg);
$mesg=eregi_replace("\n","",$mesg);
$mesg=eregi_replace("\t","",$mesg);
$mesg=eregi_replace("&lt;","",$mesg);
$mesg=eregi_replace("&gt;","",$mesg);
$email=eregi_replace("<","",$email);
$email=eregi_replace(">","",$email);
$email=eregi_replace("\n","",$email);
$email=eregi_replace("\t","",$email);
$email=eregi_replace("&lt;","",$email);
$email=eregi_replace("&gt;","",$email);
$imya=eregi_replace("<","",$imya);
$imya=eregi_replace(">","",$imya);
$imya=eregi_replace("\n","",$imya);
$imya=eregi_replace("\t","",$imya);
$imya=eregi_replace("&lt;","",$imya);
$imya=eregi_replace("&gt;","",$imya);
$url=eregi_replace("<","",$url);
$url=eregi_replace(">","",$url);
$url=eregi_replace("\n","",$url);
$url=eregi_replace("\t","",$url);
$url=eregi_replace("&lt;","",$url);
$url=eregi_replace("&gt;","",$url);
$mesg=substr($mesg,0,499);
$email=substr($email,0,39);
$imya=substr($imya,0,39);
$url=substr($url,0,39);
if ($mesg != "" && $imya != "")
{
$time = Date("d.m.y"); // настройка даты
// Осталькой код переделывать не рекомендуется
$zapis = "\n

<br>
<table border='1' width='100%' cellspacing='0' cellpadding='0' bordercolor='#000000'>
<tr>
<td width='116'><b><a href='mailto:$email'>$imya</a>($time)</b><br>
<b>ICQ: </b>$url<br></td>
<td><b><font face='Courier'>$mesg</font></b><br></td>
</tr>
</table>

";
?>

   
 
 автор: Loki   (02.11.2005 в 09:19)   письмо автору
 
   для: ZetRider   (31.10.2005 в 18:07)
 

>re2: Loki
>тоже правильная вещь!) С кодом можеш помоч?
Гм... скорее с алгоритмом:) А что с кодом не понятно?

   
 
 автор: ZetRider   (01.11.2005 в 20:59)   письмо автору
 
   для: DDK   (31.10.2005 в 18:51)
 

угу спасиба!

   
 
 автор: DDK   (31.10.2005 в 18:51)   письмо автору
 
   для: ZetRider   (31.10.2005 в 18:07)
 

Господи, да что там такого с ложного с куками - ставится эта кука так:
<?
setcookie
("waitnow""true"time()+120);
?>

Проверяется, существует ли она или нет так:

<?
if(isset($_COOKIE['waitnow'])) {
...
код...
} else {
...
код...
}
?>


Я конечно понимаю, что совет Локи обеспецит почти 99% защиту, но имхо она такая мощная (строк кода там будет не мало) и не нужна...
ЗЫ: Имхо вам стоит потратить какие-то 30 минут на то, что бы прочитать это: http://www.softtime.ru/bookphp/gl8_2.php

   
 
 автор: ZetRider   (31.10.2005 в 18:07)   письмо автору
 
   для: Loki   (31.10.2005 в 16:43)
 

так... все попорядку))

re: P@Sol
данные в *.txt файле, а выражение ) вроде ничего такова) я никово необзывал)

re: XPraptor
да ето тема) осуществить бы ее еще) Щас буду кодить)

re: Loki
спасиба за фнкции, пригодятся! А Флудеры и нетакие бывают)

re: DDK
я с куками недружу) поетому отпадает...

re2: Loki
тоже правильная вещь!) С кодом можеш помоч?

   
 
 автор: Loki   (31.10.2005 в 16:43)   письмо автору
 
   для: DDK   (31.10.2005 в 16:35)
 

Да проще:) при записи сообщения писать в базу так же время и ip и при добавлении нового проверять есть ли от этого ip сообщения новее 2 минут.

   

Сообщения:  [1-10]   [11-19] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования