Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zprawdzanie Maila
Forum PHP.pl > Forum > PHP
szczechu96
Ja zrobić żeby strona sprawdzała czy dany Mail istniej
tak jak na stonie link(kliknij)
wookieb
Ale ten skrypt nie sprawdza czy mail istnieje. Nie ma takiej możliwości
modern-web
Możliwość na upartego może by się znalazła... ( nie w pełni automatyczny sposób ) Potwierdzenie dostarczenia + odpowiednia obsługa danych. Hmm; teoretycznie - realne; praktycznie - graniczące z cudem.
Tak czy inaczej warto zadać sobie pytanie: po co sprawdzać czy dany mail istnieje skoro każdy może podać maila swojego kolegi, koleżanki, ojca, matki, babci(?), jakiejś firmy... Jak ktoś nie chce podać prawdziwego maila to i tak nie poda więc po co utrudniać życie sobie i innym smile.gif

Pozdrawiam!
kill15
Za to możesz sprawdzić czy istnieje @ w tekście smile.gif
mat-bi
Raczej sądzę, że jest wykorystanie preg_match i tyle.
markonix
Walidacja podstawowa (wbudowana funkcja w PHP - filter, żadne wyrażenia regularne!)
Walidacja istnienia domeny (MX rekord)
Walidacja istnienia konta - za pomocą SMTP sprawdzasz czy konto istnieje, testowałem i działa w 90% przypadków. Niestety te 10% wyklucza używanie tego w formularzu, może się przydać do czystek bazy maili, których i tak dużo mamy.
Przeglądanie odrzutów (bonuce).
Fifi209
Można tam podać dowolnego maila wink.gif

Co do wyrażeń... Od czego jest filter_var?
Bags_Bunny
Proponuję nie kombinować zbyt wiele w tym zakresie. Ja mam adres e-mail w formacie imię@nazwisko.info i już kilka razy "mądre" automaty mi go odrzuciły, jako niby nieistniejącego. filter_var i tyle. Jeśli chcesz się upewnić, że istnieje to wyślij kod aktywujący.
neosatan
ja używam czegoś takiego
  1. function isValidEmail($mail)
  2. {
  3. $wholeexp = '/^(.+?)@(([a-z0-9\.-]+?)\.[a-z]{2,5})$/i';
  4. $userexp = "/^[a-z0-9\~\\!\#\$\%\&\(\)\-\_\+\=\[\]\;\:\'\"\,\.\/]+$/i";
  5.  
  6. /* //if you have a lunix/unix server then uncomment this block of code
  7. // on windows servers MX isn't declared and checkdnsrr() function don't work
  8. // so if your server is running on windows this method will validate email address only againts regular expresion
  9. if (preg_match($wholeexp, $mail, $regs)) {
  10. $username = $regs[1];
  11. $host = $regs[2];
  12.  
  13. if (checkdnsrr($host, MX)) {
  14. if (preg_match($userexp, $username)) {
  15. return true;
  16. } else { return false; }
  17. } else { return false; }
  18. } else { return false; }
  19. */
  20. // if your server is running under linux/unix os then comment code block below
  21. if (preg_match($wholeexp, $mail, $regs))
  22. return true;
  23. else
  24. return false;
  25. }

zresztą chyba nawet zaczerpnięte z tego forum.
markonix
Cytat(neosatan @ 15.04.2011, 21:16:14 ) *
ja używam czegoś takiego

no i?

Po co w to pchać w to wyrażenia regularne jest jak dedykowana funkcja wbudowana w PHP....
neosatan
mam tą świadomość. Problem pojawia się, gdy musisz rozróżniać pewne domeny (np. znane problemy z pocztą onet, lub o2).
Lecz nie będę przekonywał, że to jest dobre podejście.
markonix
Jakby była taka potrzeba to po kodzie weryfikującym poprawność wystarczyłoby zwykłe explode i in_array.
neosatan
zastanawiam się teraz, która metoda jest lepsza i szybsza.
markonix
Wbudowana..
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.