Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] formularz kontaktowy - walidacja
lnn
post
Post #1





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

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


Chciałem zwalidowac maila zeby byl poprawny co do długosci (wiecej znakow niz..), zeby nie byl pusty oraz co do poprawnosci wpisania, chcialem to wykonac za pomoca:

  1. <?php
  2. $checkmail = '/^([^@s]+)@((?:[-a-z0-9]+.)+[a-z]{2,})$/i';  
  3. if (preg_match($checkmail, $from)) {
  4. //wyslij email } else {
  5. //przerwij
  6. ?>


Ze da sie to zrealizowac to wiem, ale nie moge napisac odpowiedniego warunku zeby najpierw sprawdzal dlugosc a potem poprawnosc, albo to i to na raz ;/
a potem jeszcze to wysłał (wysylanie jest w ostatnim warunku, jesli wszystkie spelnia to wysyla ;/)
  1. <?php
  2. $recipient="imejl@o.pl";
  3. $subject= "wiadomosc ze strony www";
  4. $msg= $_POST["msg"];
  5. $name= $_POST["name"];
  6. $from= $_POST["from"];
  7. $tel= $_POST["tel"];
  8. $sender= 'From:' .$_POST["name"]. '<' .$_POST["from"]. '>';
  9.  
  10. if (empty($name) || strlen($name)<=2) {
  11.    echo "pole name jest puste lub zbyt krotkie";
  12. } elseif (empty($tel) || strlen($tel)<=2) {
  13.    echo "pole tel jest puste lub za krotkie";
  14. } elseif (empty($msg) || strlen($msg)<=2) {
  15.    echo "pole wiadomosci jest puste lub za krotkie";
  16. } elseif (empty($from) || strlen($from)<=2) {
  17.    echo "zly mejl";
  18. } elseif (strlen($name)>=3 && strlen ($tel)>=3 && strlen($msg)>=3 && strlen($from)>=3) {
  19.    echo "mail zostal wyslany";
  20.    mail($recipient, $subject, $msg, $sender);
  21.     }
  22. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
lor
post
Post #2





Grupa: Zarejestrowani
Postów: 51
Pomógł: 11
Dołączył: 12.09.2008

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


  1. <?php
  2. if (!ereg("^[a-zA-Z0-9.-_]+@[a-zA-Z0-9.-_]+.[a-z]{2,4}$", $mail)) {
  3.  echo "Nie prawidłowy mail";
  4. } else {
  5.  
  6. }
  7. ?>


Zakładając, że zmienna $mail zawiera adres, który chcesz sprawdzić


--------------------
Go to the top of the page
+Quote Post
lnn
post
Post #3





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

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


dzieki dziala!! smile.gif )
hmm a jak zwalidowac nr telefonu zeby np byly to np same cyfry i minimum 4 znaki?
cos takiego?

  1. <?php
  2. !ereg("^[0-9]{2,4}$", $tel
  3. ?>


Ten post edytował lnn 24.03.2009, 00:22:03
Go to the top of the page
+Quote Post
lor
post
Post #4





Grupa: Zarejestrowani
Postów: 51
Pomógł: 11
Dołączył: 12.09.2008

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


Podałeś poprawną regułkę. W nawiasach klamrowych sterujesz długością winksmiley.jpg. W Twoim przypadku {2,4} co oznacza min 2, max 4.
{4,} minimum 4, brak max

ostatecznie
Kod
ereg("^[0-9]{4,}$", $telefon)


--------------------
Go to the top of the page
+Quote Post
lnn
post
Post #5





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

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


ostatecznie dzieki wam osiagnalem to co chcialem a oto kod zrodlowy:
  1. <?php
  2. $recipient="adres@odbiorcy.pl";
  3. $subject= "wiadomosc ze strony www";
  4. $msg= $_POST["msg"];
  5. $name= $_POST["name"];
  6. $from= $_POST["from"];
  7. $tel= $_POST["tel"];
  8. $sender= 'From:' .$_POST["name"]. '<' .$_POST["from"]. '>';
  9. $msgToSent= "\nimie i nazwisko: ".$_POST["name"].
  10.             "\nnr tel: ".$_POST["tel"].
  11.             "\ntresc wiadomosci: " .$_POST["msg"];
  12.  
  13. if (empty($name) || strlen($name)<=2) {
  14.    echo "Nie zostalo wprowadzone imie i nazwisko nadawcy lub jest ono zbyt krotkie<br />";
  15.    echo "<a href=\"java script:history.back()\">&laquo;wróć i popraw</a>";
  16. } elseif (!ereg("^[a-zA-Z0-9.-_]+@[a-zA-Z0-9.-_]+.[a-z]{2,4}$", $_POST["from"])) {
  17.    echo "Wprowadzony adres e-mail jest zbyt krotki lub niepoprawny.<br />";
  18.    echo "<a href=\"java script:history.back()\">&laquo;wróć i popraw</a>";
  19. } elseif (!ereg("^[0-9]{4,}$", $_POST["tel"])) {
  20.    echo "Wprowadzony nr telefonu jest zbyt krotki lub niepoprawny.<br />";
  21.    echo "<a href=\"java script:history.back()\">&laquo;wróć i popraw</a>";
  22. } elseif (empty($msg) || strlen($msg)<=5) {
  23.    echo "Nie wprowadzono tresci wiadomosci lub jest ona zbyt krotka (min. 6 znakow).<br />";
  24.    echo "<a href=java script:history.back()>&laquo;wróć i popraw</a>";
  25. } elseif (strlen($name)>=3 && strlen($from)>=3 && strlen ($tel)>=3 && strlen($msg)>=6) {
  26.    echo "Dziękujemy! \nWiadomosc zostala wyslana pomyslnie!<br />";
  27.    echo "<a href=\"java script:window.close()\">zamknij okno</a>";
  28.    mail($recipient, $subject, $msgToSent, $sender);
  29.     }
  30. ?>


Ten post edytował lnn 24.03.2009, 01:15:47
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 Aktualny czas: 21.08.2025 - 05:02