![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 27.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
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; } } Ten post edytował qwertY1234 18.07.2008, 20:58:12 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 170 Pomógł: 14 Dołączył: 16.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
1. Nie pobieraj IP i dany przez $_POST bo to będzie można podrobić
![]()
2.
Nie ma sensu pobierać wszystkich danych z bazy sql. Zamiast * wpisz jakąś kolumnę która używasz z tego co widzę to tylko `czas` więc :
3. Może zobacz zamiast to
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 14:09 |