Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: walidacja adresu e-mail a wyrażenia regularne
Forum PHP.pl > Forum > PHP
hhg
dlaczego poniższa walidacja nie działa tj przepuszcza e-mail o innej budowie niz prawidłowa np. "mojemail" nie jest raportowany jako błędny

  1. <?php
  2. if (empty($_POST['email']) || !ereg('^[a-z0-9]+@([a-z0-9]+.){1,2}[a-z]{2,4}$',$email)) {
  3. $em = FALSE;
  4. $message .= '<p class="error">Popraw swój adres e-mail.</p>';
  5. } else {
  6. $em = escape_data($_POST['email']);
  7. }
  8. ?>
ens0re
  1. <?php
  2. preg_match('/^[a-z0-9.-_]+@[a-z0-9-_]+.([a-z0-9-_]+.)*?[a-z]+$/is', $email)
  3. ?>

Mi działa znakomicie:
  1. <?php
  2. function sprawdz_email($email) {
  3.  if(!preg_match('/^[a-z0-9.-_]+@[a-z0-9-_]+.([a-z0-9-_]+.)*?[a-z]+$/is', $email)) {
  4. return false;
  5.  }
  6.  else {
  7. return true;
  8.  }
  9. }
  10. ?>
  11. <?
  12. if(sprawdz_email('adres@domena.pl')) {
  13.  echo 'Ten adres jest poprawny';
  14. } else {
  15.  echo'Ten adres jest niepoprawny';
  16. }
  17. ?>
hhg
kod

  1. <?php
  2. if ( preg_match('/^[a-z0-9.-_]+@[a-z0-9-_]+.([a-z0-9-_]+.)*?[a-z]+$/is', $email) ) {
  3. $em = FALSE;
  4. $message .= '<p class="error">Popraw swój adres e-mail.</p>';
  5. } else {
  6. $em = escape_data($_POST['email']);
  7. }
  8. ?>


przepuszcza zarówno adres
adres@domena.pl
jak i
literę 'a'

to niestety nie to, czekam na Wasze pomysły
SHiP
Znajomy google poleca http://www.regular-expressions.info/email.html winksmiley.jpg
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.