Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Antyflood, Jak dopisac do tego formularza?
psq
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 13.04.2005

Ostrzeżenie: (0%)
-----


Mam pytanie, napisalem prosty formularz itp.
Ale chciałbym go zabezpieczyc, zeby osoba jak go wypelnila i wyslala, nie mogła wysłać go ponownie.. np. dzialajaca na cookie lub na IP.. a czas niemoznosci napisania to powiedzmy Xdni lub Xgodzin itp.. jestem naprawde poczatkujacy i nie bardzo wiem jak za to sie zabrac, a szukalem, ale zaden gotowiec mi nie dzialal:/
  1. <center>
  2. <form action="list.php" method="post">
  3. <input type="text" name="pole1" /><br>
  4. <input type="text" name="pole2" /><br><input type="text" name="pole3" /><br /><input type="submit" value="OK" />
  5. </form>
  6. </center>
  7.  
  8. <?
  9. $pole1 = stripslashes(trim($_POST["pole1"]));
  10. $pole2 = stripslashes(trim($_POST["pole2"]));
  11. $pole3 = stripslashes(trim($_POST["pole3"]));
  12.  
  13. if ($pole1<>"" && $pole2<>"" && $pole3<>"") {
  14. $tresc="$pole1n $pole2n $pole3nn";
  15. $f=fopen("dane.txt", "a");
  16. fputs($f, $tresc);
  17. fclose($f);
  18. mail("mail@mail.pl", "TEMAT", $tresc);
  19. echo "List został wysłany, dziekujemy...";
  20. }
  21. ?>

O tak wyglada caly formularz.. ale nie bardzo wiem jak go zabezpieczyc przed floodem. Oczywiscie jest on mniejszy od oryginalnego.. Chyba dobrze napisalem.. Prosiłbym o pomoc, z góry dziekuje.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Lars
post
Post #2





Grupa: Zarejestrowani
Postów: 279
Pomógł: 15
Dołączył: 29.04.2005
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


setcookie" title="Zobacz w manualu php" target="_manual
Go to the top of the page
+Quote Post
psq
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 13.04.2005

Ostrzeżenie: (0%)
-----


dziękuje za miłe chęci, jednak czytając to z manuala, dochodze do wniosku.. jak ja to mam umieścic w ten formularz.. Ale jezeli nikt mi nie pomoze, to trudno.
Pozdrowienia.
Go to the top of the page
+Quote Post
Pigula
post
Post #4





Grupa: Zarejestrowani
Postów: 446
Pomógł: 0
Dołączył: 5.03.2005
Skąd: Lublin

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $pole1 = stripslashes(trim($_POST["pole1"]));
  3. $pole2 = stripslashes(trim($_POST["pole2"]));
  4. $pole3 = stripslashes(trim($_POST["pole3"]));
  5.  
  6. if ($pole1<>"" && $pole2<>"" && $pole3<>"") {
  7. $tresc="$pole1n $pole2n $pole3nn";
  8. $f=fopen("dane.txt", "a");
  9. fputs($f, $tresc);
  10. fclose($f);
  11. mail("mail@mail.pl", "TEMAT", $tresc);
  12. echo "List został wysłany, dziekujemy...";
  13. setcookie("List",1,time()+x*3600); //x jest liczba godzin
  14. }
  15. ?>

pozniej sprawdzasz:
  1. <?php
  2. if ($_COOKIE['List']==1)
  3. {
  4. echo 'Sorry nie mozesz narazie wyslac formularza';
  5. }
  6. else
  7. {
  8.  //wyswietlasz formularz
  9. }
  10. ?>
Go to the top of the page
+Quote Post
psq
post
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 13.04.2005

Ostrzeżenie: (0%)
-----


jezeli dobrze zrozumiealem to robie tak:
tworze plik powiedzmy test.php w nim mam to
  1. <?php
  2. if ($_COOKIE['List']==1)
  3. {
  4. echo 'Sorry nie mozesz narazie wyslac formularza';
  5. }
  6. else
  7. {
  8.  include 'formularz.php';
  9. }
  10. ?>

w pliku formularz mam to:
  1. <form action="formularz.php" method="post">
  2. <p align="center">
  3. <input type="text" name="pole1" />
  4. <input type="text" name="pole2" /><br>
  5. <input type="submit" value="WYSLIJ" />
  6. <?php
  7. $pole1 = stripslashes(trim($_POST["pole1"]));
  8. $pole2 = stripslashes(trim($_POST["pole2"]));
  9. if ($pole1<>"" && $pole2<>"") {
  10. $f=fopen("dane.txt", "a");
  11. fputs($f, $tresc);
  12. fclose($f);
  13. mail("mail@mail.pl", "TEMAT", $tresc);
  14. echo "Formularz Wyslany";
  15. setcookie("List",1,time()+48*3600); //x jest liczba godzin
  16. }
  17. ?>

Jezeli tak, to niestety wywala mi błąd po wyslaniu formularza taki:
Kod
Formularz Wyslany
Warning: Cannot modify header information - headers already sent by (output started at c:\usr\krasnal\www\cpe\form\formularz.php:13) in c:\usr\krasnal\www\cpe\form\formularz.php on line 95

na lini 95 znajduje sie:
  1. <?php
  2. setcookie("List",1,time()+144*3600); //x jest liczba godzin
  3. ?>

Nie wiem czy dobrze zrozumialem wyzsza wypowiedz:(
Dziekuje ze tracicie na mnie czas (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
tiraeth
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


ob_start() na początku i ob_end_flush() na końcu skryptu załatwi sprawę...
Go to the top of the page
+Quote Post
psq
post
Post #7





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 13.04.2005

Ostrzeżenie: (0%)
-----


Nigdy bym nie doszedl.. hehehe a tymbardziej ze czytalem manual o cookie:)
Dzieki moj wybawco. jestem Ci bardzo wdzieczny!
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 3.10.2025 - 01:16