Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]ANTYFLOOD, Antyflood
qwertY1234
post
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 smile.gif
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&amp;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&amp;idk='$id'')",5);                                                                                  
  </script>
  EOD;
              }
          }


Ten post edytował qwertY1234 18.07.2008, 20:58:12
Go to the top of the page
+Quote Post

Posty w temacie
- qwertY1234   [PHP][MYSQL]ANTYFLOOD   18.07.2008, 20:23:54
- - Eagle   1. Nie pobieraj IP i dany przez $_POST bo to ...   18.07.2008, 21:35:43


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 10:58