BAZA WIEDZY
KURSY
Bazy danych w PHP
Kurs AdvancedAJAX
Kurs ASP
Kurs ASP.NET
Kurs C++
Kurs CSS
Kurs HTML
Kurs HTML drugi
Kurs JavaScript
Kurs MySQL
Kurs PHP
Kurs RSS
Kurs XHTML
Obiekty DOM
MANUALE
CSS1 - W3C
DOM - w budowie
PHP 2005
PHP 2006
Wyrażenia regularne
SHOUTBOX
STAT
Online: 21 | UU: 433
[PHP] Walidacja adresu email
7 kwiecień 2007

Ważną kwestią przy odbieraniu różnych informacji z formularzy, jest sprawdzanie poprawności wprowadzonych do nich danych. Przykładem na to może być np formularz zawierający pole email, które wykorzystywane jest po wypełnieniu formularza do wysłania maila. Złe wprowadzenie danych w tym przypadku spowoduje zwyczajnie, że mail nie dojdzie tam gdzie powinien. Pomocne w takich przypadkach jest wykorzystanie wyrażeń regularnych w celu filtrowania danych wprowadzanych do formularza. Oto kod, który możesz umieścić w pliku index.php.

Przykład:

Kod: php

<?php
function  walidacja_email($email) {
  if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $email))
  {
    echo "wprowadzony adres email jest niepoprawny";
  } else echo "wprowadziłeś poprawny adres email";
}

$email = $_POST ["email"];
 
echo <<<KOD

<form name="formularz" action="index.php" method="post">
  <input type"text" name="email" value="$email" />
  <input type="submit" value="Wyślij" />
</form>
KOD;
if ($email) walidacja_email($email);
?>

Funkcja "walidacja_email" sprawdza czy wprowadzony do formularza email jest prawidłowy. Jeżeli nie pasuje on do wzoru: string@string.xx, string@string.xx.xx, string@string.xxx.xx  itd. wyświetlana jest informacja, że jest on nieprawidlowy. W przeciwnym wypadku mamy informację o poprawnie wprowadzonym adresie email. Pod funkcją mamy zmienną $email odbierającą dane z pola o nazwie "email". W momencie wysłania formularza zmienna $email nie jest pusta, zatem spełniony jest warunek umieszczony pod formularzem, który uruchamia naszą funkcję "walidacja_email". Chyba wszystko jasne :).

Autor: Adam Suchowski

Dodaj komentarz









Komentarze
32 odpowiedzi
asd
11 kwiecień 2012, godz. 8:16

chlep

Mary Wills Kredyt Inc
24 czerwiec 2011, godz. 10:41

Zarządzanie Mary Wills Kredyt Inc pragnie poinformować jako inwestor prywatny, specjalizuje się w działalności i pomocy finansowej dla osób i firm. Nasza oferta kredytowa jest w interesie 2%. Dajemy wszystkich rodzajów kredytów, takich jak: Auto-Mobile zakupu, zakup nieruchomości, podatków i wyjaśnienia lokalne konta, pożyczki osobiste itp. Oferujemy również kredyty obrotowe dla osób i firm, takie jak, tworzenie firm, rozszerzenie działalności, itp. Maksymalna ilość Dajemy jest 50,000.000.00 GBP.Minimum 3.000,00 USD. Kredyty są dostępne na dowolnej walucie handlu słowo,, USD EURO, GBP,. I kraj nie jest barierą dla naszej ofercie. Nasze warunki kredytu wschodzących od 6 miesięcy do 25 lat. Jeśli jesteś zainteresowany tą ofertą, prosimy o kontakt przez e-mail: marywillslenders@yahoo.com

Z poważaniem,
Serwis informacyjny
Mary Wills Kredyt Inc
Miejsce: Eastern Avenue London 528B
Telefon: (44) 702-406-1599
Numer faksu: 086 572 1936.

frank paul
5 luty 2011, godz. 4:23

Witam,
Jesteś w dziale? Czy odmówiono kredytu z Banku? Czy trzeba
pożyczki opłacać rachunki? martwić się nie ma, Twoja pomoc jest teraz, panie Frank Paul
Firma jest firmą, która oferuje pożyczki pożyczki wszelkiego rodzaju pożyczki dla ludzi,
firm, którzy potrzebują kredytu z niskim oprocentowaniu 3% o kontakt za pośrednictwem
email: frankpaulloancompany@gmail.com

* Formularz wniosku kredytowego (FILL i powrót)

* Imię
NAZWISKO
AGE
SEX
Kod pocztowy
KRAJ
PAŃSTWA.
CITY
Numeru telefonu komórkowego
ZAWÓD
Dochód miesięczny
Kwoty potrzebnej
CEL POŻYCZKI
Kredyt Czas
Czekamy na Państwa szybkiej reakcji.
Pozdrawiam,
Pan Frank Paul.

admin
25 styczeń 2011, godz. 8:57

Ciastko!

Admin
4 styczeń 2011, godz. 2:37

Chce się z wami kochać

Dante
26 czerwiec 2010, godz. 6:56

co kurwaaaaaaaaaaaaa

Anonim
1 maj 2010, godz. 12:11

j

24 kwiecień 2010, godz. 5:02

A to w adresie email chyba można dodać + i też powinno dojść.

Anonim
22 kwiecień 2010, godz. 12:05

test komenataza

www
14 styczeń 2010, godz. 8:14

wreszcie kod ktory dziala :)

Tadek
7 październik 2009, godz. 9:54

ogólnie z eregi to damy rade jesli robimy strone dla siostry do liceum. W nowym php 6 ta funkcja juz nie bedzie dostepna gdyz sie nie sprawdzila. Nowoczesna walidacja emaila jest tutaj http://fr.php.net/manual/pl/function.filter-var.php

28 lipiec 2009, godz. 2:24

do dupy!!!!!!!!!

miracle
20 luty 2009, godz. 5:07

fajny skrypt, dzieki. dziala

sas
10 luty 2009, godz. 1:48

saa

Anonim
7 październik 2008, godz. 5:41

khl

18 lipiec 2008, godz. 8:06

Pozastawiam komentarz nawet spoko potrzebne było mi tylko !eregi(”^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$” :P

lolo
18 lipiec 2008, godz. 10:51

test

Anonim
7 maj 2008, godz. 9:31

Nie kozacz panie m jeżeli się nie znasz. Masz tą konstrukcję: (\.[a-z0-9-]+)*
Ona przepuszcza maile na subdomenach a co.uk to tak jakby co w uk ;)

m
27 kwiecień 2008, godz. 12:37

a xxx@xxx.co.uk, panie majstrze? oprocz tego formularz bez sensu skonstruowany. nigdy nie przesle danych w takiej konstrukcji. tak to tylko js, ktore mozna wylacz w przegladarce.

jutrzenka
21 kwiecień 2008, godz. 8:36

lubię kwiaty

jutrzenka
21 kwiecień 2008, godz. 8:35

lubię mrówki

kuba
7 kwiecień 2008, godz. 12:10

bez komentarza

14 styczeń 2008, godz. 12:26

sfjsfjdj

edgar
16 grudzień 2007, godz. 11:11

test

16 grudzień 2007, godz. 10:27

A dlaczego nie np tak :
function checkEmail($email) {
if(preg_match(”/^( [a-zA-Z0-9] )+( [a-zA-Z0-9\._-] )*@( [a-zA-Z0-9_-] )+( [a-zA-Z0-9\._-] +)+$/” , $email)){
list($username,$domain)=split(’@',$email);
if(!checkdnsrr($domain,’MX’)) {
return false; //dzieki temu mamy spraawdzona domene i nikt nie wpisze xx@terefere.pl bo takie jdomeny nie ma
}
sspra

return true;
}
return false;
}

Anonim
16 grudzień 2007, godz. 7:55

e

admin
27 wrzesień 2007, godz. 2:35

Proszę takie pytania kierować na nasze forum. Żeby dowiedzieć się czy dany mail istnieje, trzeba na ten mail wysłać wiadomość. Można spóbować wpisać w funkcji wysyłającej mail przez php coś w rodzaju return_patch czyli adres na który ma się wrócić poczta w przypadku niepowodzenia. Ale to działa tak samo jak wysyłanie przez program pocztowy, który też odbiera niedostarczoną pocztę. Nie ma możliwości sprawdzenia w locie istnienia danego adresu bo nie istnieje taka baza.

27 wrzesień 2007, godz. 1:27

witam
możecie mi pomóc ? szukam właśnie jakiegoś skryptu lub strony co by można się dowiedzieć po wpisaniu adresu email czy jest on prawidłowy i używany czy nie ma takiego adresu
Bo czasem jak się wysyła maila do kogoś , za chwilę przychodzi wiadomość że nie ma takiego konta, i czy można to sprawdzić wcześniej, ?

pozdrawiam

adamt
20 wrzesień 2007, godz. 11:42

Już jest poprawione :)

20 wrzesień 2007, godz. 10:08

a co z adresem xxx@xads.info ? :)

admin
26 czerwiec 2007, godz. 8:05

Już działa prawidłowo, dziękujemy za sugestię.

cos nie tak
24 czerwiec 2007, godz. 8:14

Funkcja pusza maile postaci: ods@assss wiec cos chyba jest nie tak..

 
 
Copyright © 2006-2011 egrafik.pl | Kontakt | Reklama | Projekty domów
jocker