Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Blokada IP
Forum PHP.pl > Forum > Przedszkole
Hebolini
Witam! Chciałbym zrobić blokadę ip wysyłania tego formularza, chciałbym aby blokada trwała 1 minute. Może być do blokada ip jak i blokada ciasteczek.
  1. <?php
  2. if (count($_POST))
  3. {
  4. ////////// USTAWIENIA //////////
  5. $email = 'kontakt@fachowcy-opinie.pl'; // Adres e-mail adresata
  6. $subject = 'Dodaj fachowca'; // Temat listu
  7. $message = 'Dziękujemy za zgłoszenie fachowca, wkrótce zostanie dodany'; // Komunikat
  8. $error = 'Wystąpił błąd podczas zgłoszenia'; // Komunikat błędu
  9. $charset = 'iso-8859-2'; // Strona kodowa
  10. $ip = $_SERVER['REMOTE_ADDR'];
  11. //////////////////////////////
  12.  
  13. $head =
  14. "MIME-Version: 1.0\r\n" .
  15. "Content-Type: text/plain; charset=$charset\r\n" .
  16. "Content-Transfer-Encoding: 8bit";
  17. $body = '';
  18. foreach ($_POST as $name => $value)
  19. {
  20. if (is_array($value))
  21. {
  22. for ($i = 0; $i < count($value); $i++)
  23. {
  24. $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "\r\n";
  25. }
  26. }
  27. else $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "\r\n";
  28. }
  29. echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;
  30. }
  31. else
  32. {
  33. ?>



Z góry dzięki za pomoc! Pozdrawiam!
blade-mrn
Z czym masz problem questionmark.gif
Myślę że prostszym rozwiązaniem jest oparcie tej blokady na ciasteczkach bo w tym przypadku wystarczy że w momencie wysyłania formularza stworzysz ciasteczko z odpowiednio długim czasem ważności. A podczas ładowania strony sprawdzisz czy ciasteczko istnieje, jeśli tak to blokujesz formularz, jeśli nie to nie robisz nic.
lnn
Cytat(blade-mrn @ 27.01.2010, 20:25:23 ) *
Z czym masz problem questionmark.gif

zapewne z tym zeby zrobic to za niego bo nie chce mu sie nawet sprobowac..

podpowiem daj np

  1. if(isset($_POST['wyslij'])) {
  2. //przetwarzanie formularza
  3.  
  4. echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;
  5. // po tym np ustaw ciasteczko
  6.  
  7. } else {
  8. // blad }

jesli formularz jest przetwarzany na tej samej stronie co i wypelniany to $_POST['wyslij'] jest to nazwa buttona ktory wysyla (name="wyslij")
Hebolini
próbowałem już do zrobić, leczm i nie wychodziło. Jestem w tym zielony.
Dokładnie chodzi mi o blokadę ciastecze lub ip żeby nie można było wysyłać kolejnego formularza przed upływem 1 minuty od wysłania.

Próbowałem zrobić coś takiego ale wyskakiwał błąd:
  1. <?php
  2. if (count($_POST))
  3. {
  4. ////////// USTAWIENIA //////////
  5. $email = 'e-mail@e-mail.pl'; // Adres e-mail adresata
  6. $subject = 'Dodaj fachowca'; // Temat listu
  7. $message = 'Dziękujemy za zgłoszenie fachowca, wkrótce zostanie dodany'; // Komunikat
  8. $error = 'Wystąpił błąd podczas zgłoszenia'; // Komunikat błędu
  9. $charset = 'iso-8859-2'; // Strona kodowa
  10.  
  11. $setcookie('mailform', 'zablokowany', time()+60);
  12.  
  13. $ip = $_SERVER['REMOTE_ADDR'];
  14. //////////////////////////////
  15.  
  16. $head =
  17. "MIME-Version: 1.0\r\n" .
  18. "Content-Type: text/plain; charset=$charset\r\n" .
  19. "Content-Transfer-Encoding: 8bit";
  20. $body = '';
  21.  
  22. if(isset($_COOKIE['mailform'])) {
  23. Już dodałeś//akcja jeżeli ciastko postawione
  24. }
  25. else
  26. {
  27. //akcja gdy brak blokady
  28.  
  29.  
  30. foreach ($_POST as $name => $value)
  31. {
  32. if (is_array($value))
  33. {
  34. for ($i = 0; $i < count($value); $i++)
  35. {
  36. $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "\r\n";
  37. }
  38. }
  39. else $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "\r\n";
  40. }
  41. echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;
  42. }
  43. else
  44. {
  45. ?>
blade-mrn
Jaki błąd??
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.