Помогнете с Flood защитата

bganonymous

Registered
Използвам тази Flood защита: http://web-tourist.net/login/login/view.php?st=896

Но, при изписване на съобщението: FLOOD ЗАЩИТА! Трябва да изчакате 30 секунди преди да посетите страницата отново!, - след него ми блокирва целия код надолу с командата exit.

По какъв начин мога да направя така че да не ми блокирва съдържанието надолу? :)
 
Хем искаш да им се блокира сайта на потребителите, който флоодат, хем искаш да ти се показва съдържанието?

Аз ти предлагат да си направиш един хубав дизайн там където пише "Flood защита", разбира се дизайн с тон със самият дизайн на сайта и всичко е точно.
 
eddyy93 каза:
Хем искаш да им се блокира сайта на потребителите, който флоодат, хем искаш да ти се показва съдържанието?

Аз ти предлагат да си направиш един хубав дизайн там където пише "Flood защита", разбира се дизайн с тон със самият дизайн на сайта и всичко е точно.
Не... искам когато не е блокиран потребителя - да му показва "Добре дошли...", а когато е блокиран "Flood защита!", само че с тази команда exit, при съобщението "Flood защита!" ми блокирва съдържанието надолу (защото по-долу имам footer файл), а без нея се показват и двете съобщения.
 
Не може всичко на готово ;)
Но опитай така:

PHP:
<?php 

$floodfile = "flood.php"; // в този файл се записват IP адресите 
$floodtime = 30; // времето е в секунди 
$ipaddress = getrealip(); // с тази функция взимаме реалното IP 
$addedtime = time(); // времето... 

function flooder($ipaddress){ 
global $floodtime, $floodfile; 

$old_db = file($floodfile); 
$new_db = fopen($floodfile, w); 
$result = FALSE; 
foreach($old_db as $old_db_line){ 
$old_db_arr = explode("|", $old_db_line); 
if(($old_db_arr[0] + $floodtime) > time() ){ 
fwrite($new_db, $old_db_line); 
if($old_db_arr[1] == $ipaddress){ 
$result = TRUE; 
} 
} 
} 
fclose($new_db); 
return $result; 
}

function getrealip(){ 
if(getenv('HTTP_X_FORWARDED_FOR')){ 
$ipaddress = $_SERVER['REMOTE_ADDR']; 
if(preg_match("/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/", getenv('HTTP_X_FORWARDED_FOR'), $ipaddress3)){ 
$ipaddress2 = array('/^0\./', '/^127\.0\.0\.1/', '/^192\.168\..*/', '/^172\.16\..*/', '/^10..*/', '/^224..*/', '/^240..*/'); 
$ipaddress = preg_replace($ipaddress2, $ipaddress, $ipaddress3[1]); 
} 
}else{ 
$ipaddress = $_SERVER['REMOTE_ADDR']; 
} 
if($ipaddress == ""){ $ipaddress = "12.34.56.78"; } 
return $ipaddress; 
}

if(flooder($ipaddress)){
echo "<center><font style=\"font-family: verdana; font-size: 11px; color: maroon;\"><b>FLOOD ЗАЩИТА!</b></font><br /><br /><font style=\"font-family: verdana; font-size: 10px; color: maroon;\">Трябва да изчакате $floodtime секунди преди да посетите страницата отново!</font></center>"; 
}
else
{
$floodfp = fopen($floodfile, "a"); 
fwrite($floodfp, "$addedtime|$ipaddress|\n"); 
fclose($floodfp); 
echo "<center><font style=\"font-family: verdana; font-size: 11px; color: #5f5f5f;\">Здравейте! :)<br /><br />Текст";
}
?>

"Здравейте! :)<br /><br />Текст"

Това е текстът който ще се вижда, в твоят случай го заменис "Добре дошли!"

Времето е 30 секунди, но можеш да си го промениш.
 

Back
Горе