Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem z formularzem
StudioV
post 26.01.2010, 10:18:57
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 26.01.2010

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


Witam,
jestem nowy i zielony smile.gif
od dwóch dni siedzę na forach i googel i staram się zrobić formularz wysyłamy przez php ... no i zrobiłem, działający jak należy, ale chciałbym jeszcze zabezpieczyć się przed spamem i:
1. przeprowadzić walidację pola e-mail;
2. wprowadzić kod przepisywany z obrazka jako dodatkowe zabezpieczenie;
Spędziłem kupę czasu na szukaniu czytaniu i próbach znalazłem opisy i przykłady ale nie jestem w stanie tego poskładać do kupy.
Jak na razie mój formularz (w uproszczeniu - bo pól jest trochę więcej) wygląda tak:

  1. <?php
  2. // sprawdzamy, czy zmienna $submit jest pusta
  3. if (empty($_POST['submit'])) {
  4. // wyświetlamy formularz
  5. echo "<form method=\"post\" action=\"\">
  6. <table border=\"0\">
  7. <tr>
  8. <td >Imię i nazwisko</td>
  9. <td><input type=\"text\" name=\"imie\" /></td>
  10. </tr>
  11. <tr>
  12. <td >Adres e-mail</td>
  13. <td><input type=\"text\" name=\"email\" /></td>
  14. </tr>
  15. <tr>
  16. <td >Numer twlefonu</td>
  17. <td><input type=\"text\" name=\"telefon\" /></td>
  18. </tr>
  19.  
  20. <div class=\"wyslij\">
  21. <input type=\"submit\" name=\"submit\" value=\"Wyślij\"/>&nbsp;
  22. <input type=\"reset\" value=\"Wyczyść\"/>
  23. </div>
  24. </form>";
  25. }
  26. // sprawdzamy, czy zmienne przesłane z formularza nie są puste
  27. elseif (!empty($_POST['imie']) && !empty($_POST['email']) && !empty($_POST['telefon'])) {
  28. // jeżeli powyższy warunek jest spełniony tworzona jest wiadomość
  29. // zmienna $message zawiera treść wiadomości
  30. $message = "Treść wiadomości:
  31. \nWysłał: $_POST[imie]
  32. \ne-mail: $_POST[email]
  33. \nUlica: $_POST[telefon]";
  34. // zmienna $header zawiera przede wszystkim adres zwrotny
  35. $header = "From: $_POST[imie] <$_POST[email]>";
  36. // funkcja mail() za pomocą której wiadomość zostanie wysłana
  37. @mail("moj@adres.pl","temat widdomości","$message","$header")
  38. or die('Nie udało się wysłać wiadomości');
  39. // wyświetlenie komunikatu w przypadku powodzenia
  40. echo "<div align=\"center\"><strong>Wiadomość została wysłana poprawnie!</strong></div>";
  41. }
  42. // lub w przypadku nie wypełnienia formularza do końca
  43. else echo "<span style=\"color: #FF0000; text-align: center;\">Wypełnij wszystkie pola formularza!</span>";?>


POMOCY ! ! !
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
piotrooo89
post 26.01.2010, 10:34:31
Post #2


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




1. filter_var
2. google


--------------------
Go to the top of the page
+Quote Post
piotr94
post 26.01.2010, 15:40:44
Post #3





Grupa: Zarejestrowani
Postów: 331
Pomógł: 30
Dołączył: 11.11.2008
Skąd: Kraków

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


po co od razu captcha?
można samemu zrobić prosty token (bo tak nazywa się ten kod do przepisania)


--------------------
http://www.piotr94.net21.pl/ - wykonanie stron i serwisów internetowych
Jeśli moje wypowiedzi były dla Ciebie pomocne, kliknij "Pomógł" i odwdzięcz się ;)
Go to the top of the page
+Quote Post
Ulysess
post 26.01.2010, 17:08:51
Post #4





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

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


ja waliduje email tak:

  1. if(preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/", $_POST['email']))


a co do tokena to

  1. <?php session_start();
  2.  
  3. for($i=0;$i<8;$i++)
  4. {
  5. $kod .= rand(1,9);
  6. }
  7.  
  8. if(strlen($_GET['kod'] = 8));
  9. {
  10. $_SESSION['token'] = $kod;
  11. }
  12.  
  13. header("Content-type: image/png");
  14.  
  15. $img = @imagecreate(177, 20);
  16. $kolor_tla = imagecolorallocate($img, 0, 0, 0);
  17. $kolor_tekstu = imagecolorallocate($img, 255, 255, 255);
  18.  
  19. imagestring($img, 5, 55, 2, $kod, $kolor_tekstu);
  20. imagepng ($img);
  21.  
  22. ?>

to jest plik generator tokena

w formularzu gdzieś umieszczam <img src="generator_kodu.php" />

no i dalej chba jasne
Go to the top of the page
+Quote Post
piotrooo89
post 26.01.2010, 19:46:34
Post #5


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




Cytat(Ulysess @ 26.01.2010, 17:08:51 ) *
ja waliduje email tak:



jesteś jakimś sadomaso? mając gotowa funkcję wbudowaną w PHP ty tworzysz jakieś kosmiczne regexpy.


--------------------
Go to the top of the page
+Quote Post
Ulysess
post 26.01.2010, 20:19:04
Post #6





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

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


pod pojęciem walidacja pola e-mail rozumiem żeby było xxx@wp.pl np , da się łatwiej ?
Go to the top of the page
+Quote Post
piotrooo89
post 26.01.2010, 21:44:08
Post #7


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




tak da się łatwiej poczytaj kilka postów wyżej moją odpowiedz.


--------------------
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 07:03