Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]sprawdzanie poprawności adresu email
Forum PHP.pl > Forum > Przedszkole
peter13135
funkcja znaleziona na php.pl
  1. <?php
  2. function checkEmail($email) {
  3.  if (!preg_match("/^( [a-zA-Z0-9] )+( [a-zA-Z0-9._-] )*@( [a-zA-Z0-9_-] )+( [a-zA-Z0-9._-] +)+$/" , $email)) {
  4. return false;
  5.  }
  6.  return true;
  7. }
  8. ?>


jednak mi ona niedziała
stosuje ją w ten sposób

  1. <?
  2. include 'includes/functions.php';
  3. $email=$_GET['email'];
  4. if(checkEmail($email) == false) {$reg_error="email nieprawidłowy";}
  5. echo $reg_error;
  6. ?>


i co bym niewpisał to email nieprawidłowy
decha-design
może tak?

  1. <?php
  2. if(checkEmail($email)===false)
  3. ?>
Shili
Usuń te spacje, w wyrażeniu nie powinno być żadnej.
barthpl
problem chyba jest w złej funkcji a nie w znaku równości. Spróbuj tak:
  1. <?php
  2. function checkEmail($email) {
  3. if (!preg_match("/^([a-zA-Z0-9]+)([a-zA-Z0-9._-]*)@([a-zA-Z0-9_-]+)([a-zA-Z0-9._-]+)([a-zA-Z]+)$/" , $email))
  4. return false;
  5. return true;
  6. }
  7. ?>
rybik
co prawda BanAn@PALMA.pl i banan@palma.pl to inne adresy ale wielkośc liter nie ma nic współnego z poprawnością adresu, można więc spokojnie zoptymalizować wyrażenie do postaci:

  1. <?php
  2. function checkEmail($email) {
  3. if (!preg_match("/^([A-Z0-9]+)([A-Z0-9._-]*)@([A-Z0-9_-]+)([A-Z0-9._-]+)([A-Z]+)$/i" , $email))
  4. return false;
  5. return true;
  6. }
  7. ?>


ogólnie zachęcam do skracania patternów do postaci case-insensitive
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.