Poslao: 31 Jul 2010 23:53
|
offline
- zend
- Počasni građanin
- Pridružio: 22 Okt 2009
- Poruke: 900
- Gde živiš: Pancevo
|
Cao svima.
E ovako treba da uradim tacnost adrese e-poste korisnika, to obavljam pomocu regularnog izraza.
Format sadrzi odredjene alfanumericke ili interpunkcijske znakove ispred simbola @, a iza tog simbola sledi grupa alfanumerickih znakova....
Problem je sto mi vraca FALSE da email nije validan.
Gde gresim?
Kod koji sam pisao izgleda ovako
^[a-zA=z0-9_.\-.]+@[a-zA = z0 - 9\-\.]+\.[a-zA-z0-9\-.]+$
1.Podizraz
Znaci da podatak treba da pocinje najmanje sa jednim slovom, brojem, donjom crtom, tackom.
A simbol @ da odgovara znaku @
^[a-zA=z0-9_.\-.]+
2.Podizraz
Treba da utvrdi da li tacno zadat prvi deo adrese
[a-zA = z0 - 9_.\-\.]+
3.Podizraz
Utvrdjuje ispravnost preostalog dela adrese
^[a-zA=z0-9_.\-.]+$
Kombinacija \. otkriva tacku u tekstu
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 01 Avg 2010 00:31
|
offline
- Pridružio: 25 Maj 2005
- Poruke: 1482
- Gde živiš: Gracanica, Kosovo
|
Ivan Stojmenovic ::Cao svima.
E ovako treba da uradim tacnost adrese e-poste korisnika, to obavljam pomocu regularnog izraza.
Format sadrzi odredjene alfanumericke ili interpunkcijske znakove ispred simbola @, a iza tog simbola sledi grupa alfanumerickih znakova....
Problem je sto mi vraca FALSE da email nije validan.
Gde gresim?
Kod koji sam pisao izgleda ovako
^[a-zA=z0-9_.\-.]+@[a-zA = z0 - 9\-\.]+\.[a-zA-z0-9\-.]+$
...
Ovo a-zA=z znaci da moze sva mala slova abecede, veliko slovo A, znak jednako, ili malo slovo z. Verovatno hoces ovako: a-zA-Z, sto znaci bilo koje slovo abecede, veliko ili malo.
I daj primer mail adrese koja ti prijavljuje da je neispravna.
|
|
|
|
Poslao: 01 Avg 2010 00:49
|
offline
- zend
- Počasni građanin
- Pridružio: 22 Okt 2009
- Poruke: 900
- Gde živiš: Pancevo
|
@soxxx
Hvala na odg ali sam vec nasao uradio i sada radi..
function valid_email($address)
{
// Proverava da li je format adrese e-poste ispravan
if (ereg('^[a-zA=z0-9_.\-.]+@[a-zA-z0-9\-]+\.[a-zA-z0-9\-.]+$', $address))
return true;
else
return false;
}
pokusavao sam razne primere adrese i non stop mi vraca FALSE
sada u medju vremenu dok nisi odg lutao po php manueli...
Hvala jos jednom
|
|
|
|
Poslao: 01 Avg 2010 00:56
|
offline
- Pridružio: 25 Maj 2005
- Poruke: 1482
- Gde živiš: Gracanica, Kosovo
|
Opet imas gresku u prvom delu. I jesi siguran da hoces A-z a ne A-Z?
|
|
|
|
Poslao: 01 Avg 2010 01:19
|
offline
- zend
- Počasni građanin
- Pridružio: 22 Okt 2009
- Poruke: 900
- Gde živiš: Pancevo
|
Pazi ja sam probao sada i sa a-z i sa A-Z dobro je bilo radilo je nije mi nikakvo obavestenje ni gresku izbacilo...
Ostavio sam sada na kraju A-Z
|
|
|
|
Poslao: 01 Avg 2010 01:40
|
offline
- Pridružio: 25 Maj 2005
- Poruke: 1482
- Gde živiš: Gracanica, Kosovo
|
Na gresku u prvom delu sam mislio na znak "=" izmedju. Sto se drugog tice, obrati paznju na mala i velika slova u mom postu, nisu ista kao kod tebe. Imas i dva puta znak "." (tacka) u prvom delu koji nisu "escapovani", i koji oznacavaju bilo koji karakter.
Inace ne koristim php, ali posto si naveo php prirucnik bacih pogled, vise se ne preporucuje koriscenje ereg() funkcije, pogledaj preg_match(), ili filter_var() ako koristis php >5.2.0.
|
|
|
|
Poslao: 01 Avg 2010 02:02
|
offline
- Rastafarii
- Moderator foruma
- Pridružio: 22 Mar 2006
- Poruke: 3760
- Gde živiš: 127.0.0.1
|
soxxx ::Inace ne koristim php, ali posto si naveo php prirucnik bacih pogled, vise se ne preporucuje koriscenje ereg() funkcije, pogledaj preg_match(), ili filter_var() ako koristis php >5.2.0.
Ne da se ne preporucuje, nego je deprecated (zastarela i planirana za izbacivanje u sledecoj verziji), a njeno koriscenje u php 5.3 baca Warning svaki put kada se pozove. U verziji 6.0 nece biti warning, vec Fatal Error.
|
|
|
|
Poslao: 01 Avg 2010 03:14
|
offline
- zend
- Počasni građanin
- Pridružio: 22 Okt 2009
- Poruke: 900
- Gde živiš: Pancevo
|
Napisano: 01 Avg 2010 2:58
upotreba
preg_match()
function valid_email($address)
{
// Proverava da li je format adrese e-poste ispravan
if (preg_match('^[a-zA=z0-9_.\-.]+@[a-zA-z0-9\-]+\.[a-zA-z0-9\-.]+$', $address))
return true;
else
return false;
}
Warning: preg_match() [function.preg-match]: No ending delimiter '^' found in C:\wamp\www\Admin\login\function.php on line 51
That is not a valid email address. Please go back and try again.
filter_var()
function valid_email($address)
{
// Proverava da li je format adrese e-poste ispravan
if ( filter_var('^[a-zA=z0-9_.\-.]+@[a-zA-z0-9\-]+\.[a-zA-z0-9\-.]+$', $address))
return true;
else
return false;
}
Warning: filter_var() expects parameter 2 to be long, string given in C:\wamp\www\Admin\login\function.php on line 51
That is not a valid email address. Please go back and try again.
Moze objasnjenje? Nije mi jasno zasto? Citao sam uputstva i opet WARNING
Dopuna: 01 Avg 2010 3:08
Uspeo sam ali malo na drugaciji nacin
function valid_email($address)
{
if( (preg_match('/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/', $address)) ||
(preg_match('/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/',$address)) ) {
$host = explode('@', $address);
if(checkdnsrr($host[1].'.', 'MX') ) return true;
if(checkdnsrr($host[1].'.', 'A') ) return true;
if(checkdnsrr($host[1].'.', 'CNAME') ) return true;
}
return false;
}
Dopuna: 01 Avg 2010 3:14
pazi sada foru sada sve radi ali mogu da unesem sta god hocu od email adrese.. Znaci ne radi proveru
exmple_12/z.,[]';@gmail.com
znaci i ovakve email adrese prihvata umesto da odbija
|
|
|
|
Poslao: 01 Avg 2010 03:15
|
offline
- Rastafarii
- Moderator foruma
- Pridružio: 22 Mar 2006
- Poruke: 3760
- Gde živiš: 127.0.0.1
|
Citat:Warning: preg_match() [function.preg-match]: No ending delimiter '^' found in C:\wamp\www\Admin\login\function.php on line 51
preg_match() ima delimitere, odnosno karaktere koji se nalaze na pocetku i na kraju patterna. Mozes da stavis koji hoces, ali i na pocetak, i na kraj.
Inace, funkcija ti je neispravna - tj daje pogresne rezultate za odredjene e-mail adrese.
|
|
|
|
Poslao: 05 Avg 2010 16:00
|
offline
- eevan79
- Građanin
- Pridružio: 21 Apr 2007
- Poruke: 98
|
Jesi probao ovako nešto:
if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$", $address])) {
echo "Invalid email!";
}
Ako već izbegavaš eregi (što bi trebalo), možeš probati:
function isValid($str)
{
return (preg_match("/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i", $str));
}
|
|
|
|