Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] formularz kontaktowy - walidacja
Forum PHP.pl > Forum > Przedszkole
lnn
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. ?>
lor
  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ć
lnn
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. ?>
lor
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)
lnn
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. ?>
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.