Mam problem z antyfloodem w php.
Skrypt mial robic:
1. Sprawdzac czy IP jest w bazie, jesli nie to zapisuje IP i date unixowa po wyslaniu komentarza.
2. JEsli IP jest w bazie a nie minelo 900s to wyswietla komunikat, jesli czas minal usuwa IP z bazy i wstawia komentarz,
Ale problem jest taki ze ochrona "wlacza " sie po dodaniu drugiego koemntarza...i juz sie nie wylacza tzn. pozniej z IP nie mozna dodac koemntarza. JEstem poczatkujacym wiec prosze o wyrozumialosc

Kod
<?php
include('baza.php');
#DODAWANIE NEWSA:
$ip = $_POST['ip'];
$date2 = $_POST['date'];
$autor = $_POST['autor'];
$tresc = $_POST['tresc'];
$id = $_POST['id'];
$tresc=strip_tags($_POST['tresc']);
$data = date('d.m.Y');
$autor = trim($autor);
$data = trim($data);
if (!empty($autor) || !empty($tresc))
{
if (empty($autor) || empty($tresc))
{
echo '<p class="ramka">Wypełnij wszystkie pola!</p>';
exit;
}
if (strlen($autor) > 15 || strlen($tresc) > 255)
{
echo '<p class="ramka"> Krócej, krócej... :)</p>';
exit;
}
#sprawdzanie czy w bazie jest IP.
$sprawdz = mysql_query("SELECT * FROM flood WHERE IP = '$ip'");
$num = mysql_num_rows($sprawdz);
if ($num > 0)
{
$data = mysql_query("SELECT * FROM flood WHERE IP = '$ip'");
while ($zpt = mysql_fetch_assoc($data))
{
$dat = $zpt['czas'];
}
$roznica = $date2 - $dat;
if ($roznica < 120)
{
echo '<p class="ramka"> Musisz troche poczekać...</p>';
exit;
}
else
$odswiez = mysql_query("DELETE FROM flood WHERE IP = '$ip'");
$wynik3 = mysql_query("INSERT INTO komentasz VALUES (NULL, '".$tresc."', '".$autor."', '".$data."', '".$id."')");
if ($wynik)
{
echo
<<<EOD
<script language="JavaScript" type="text/javascript">
setTimeout("window.location.replace(index.php?id=komentarz&idk='$id'')",5);
</script>
EOD;
}
}
else if ($num == 0)
{
$wynik2 = mysql_query("INSERT INTO flood VALUES (NULL, '".$ip."', '".$date2."')"); #dodawanie IP i daty.
$wynik = mysql_query("INSERT INTO komentasz VALUES (NULL, '".$tresc."', '".$autor."', '".$data."', '".$id."')");
if ($wynik)
{
echo
<<<EOD
<script language="JavaScript" type="text/javascript">
setTimeout("window.location.replace(index.php?id=komentarz&idk='$id'')",5);
</script>
EOD;
}
}
include('baza.php');
#DODAWANIE NEWSA:
$ip = $_POST['ip'];
$date2 = $_POST['date'];
$autor = $_POST['autor'];
$tresc = $_POST['tresc'];
$id = $_POST['id'];
$tresc=strip_tags($_POST['tresc']);
$data = date('d.m.Y');
$autor = trim($autor);
$data = trim($data);
if (!empty($autor) || !empty($tresc))
{
if (empty($autor) || empty($tresc))
{
echo '<p class="ramka">Wypełnij wszystkie pola!</p>';
exit;
}
if (strlen($autor) > 15 || strlen($tresc) > 255)
{
echo '<p class="ramka"> Krócej, krócej... :)</p>';
exit;
}
#sprawdzanie czy w bazie jest IP.
$sprawdz = mysql_query("SELECT * FROM flood WHERE IP = '$ip'");
$num = mysql_num_rows($sprawdz);
if ($num > 0)
{
$data = mysql_query("SELECT * FROM flood WHERE IP = '$ip'");
while ($zpt = mysql_fetch_assoc($data))
{
$dat = $zpt['czas'];
}
$roznica = $date2 - $dat;
if ($roznica < 120)
{
echo '<p class="ramka"> Musisz troche poczekać...</p>';
exit;
}
else
$odswiez = mysql_query("DELETE FROM flood WHERE IP = '$ip'");
$wynik3 = mysql_query("INSERT INTO komentasz VALUES (NULL, '".$tresc."', '".$autor."', '".$data."', '".$id."')");
if ($wynik)
{
echo
<<<EOD
<script language="JavaScript" type="text/javascript">
setTimeout("window.location.replace(index.php?id=komentarz&idk='$id'')",5);
</script>
EOD;
}
}
else if ($num == 0)
{
$wynik2 = mysql_query("INSERT INTO flood VALUES (NULL, '".$ip."', '".$date2."')"); #dodawanie IP i daty.
$wynik = mysql_query("INSERT INTO komentasz VALUES (NULL, '".$tresc."', '".$autor."', '".$data."', '".$id."')");
if ($wynik)
{
echo
<<<EOD
<script language="JavaScript" type="text/javascript">
setTimeout("window.location.replace(index.php?id=komentarz&idk='$id'')",5);
</script>
EOD;
}
}