Newsgroup: it.comp.www.php
Titolo: Controllo indirizzo e-mail inserito

Salve, volevo chiedere come fare per controllare se lģindirizzo email
innserito nella variabile $email č scritto in modo corretto..
Nel server č installato PHP vers. 4.0.3pl1 quindi devbo usare questo
standard
gRAZIE


ciao
-- 
Punkarruso
mail:punkarruso chiocchiolona despammed punto com
pubblicità progresso:
http://www.netmeister.org/news/learn2quote.html

 ha scritto nel messaggio
news:2eYl9.30922$Eu.6...@twister1.libero.it...


 mi servirebbe qualcosa di meno recente... Grazie 1000
non è stato fatto riferimento a codice per PHP > 4.1
in ogni caso, questo 'potrebbe' essere un buon punto di partenza, anche se 
non RFC-Compliant:
<?
error_reporting(E_ALL);
if (eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$", 
$mail_da_controllare)) {
        echo "OK\n";
}
else {
        echo "NOT OK\n";
}
?>
e poi, impara a quotare:
http://www.netmeister.org/news/learn2quote.html
ciao
-- 
Punkarruso
mail:punkarruso chiocchiolona despammed punto com
pubblicità progresso:
http://www.efluxa.it/netiquette/

 mi servirebbe qualcosa di meno recente... Grazie 1000
Questo dovrebbe andare. E comunque già l'avevo postato in quel thread. E 
non è >4.1 ... Chi cerca trova! ^____^
La prox volta, magari, perdici qualche microsecondo in più!
function is_email($email) 
{ 
return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]| 
[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero| 
af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb| 
bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by| 
bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr| 
cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh| 
er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi| 
gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht| 
hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke| 
kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls| 
lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq| 
mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net| 
nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph| 
pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb| 
sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy| 
sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz| 
ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye| 
yt|yu|za|zm|zw)|(([0-9][0-9]?|[0-1][0-9][0-9]| 
[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?| 
[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i", 
$email)); 
} 
-- 
Luke, lo Steccalecca
    Email:   
alessandro...@tin.it
      ICQ:   120242146
Home Page:   
http://www.fanwars.cjb.net

 }
se da una rivoluzione nascesse una nuova nazione, ti toccherebbe guardare 
tutti i giorni i TG per sapere se aggiornare la lista!!!
:-)
-- 
Punkarruso
mail:punkarruso chiocchiolona despammed punto com
pubblicità progresso:
http://www.gnu.org/gnu/why-gnu-linux.it.html

 :-)
Lol!
Vero, ma dubito che se dalla divisione dell'Uzerbaigian nascessero il 
Mianonnagian ed il Chicchirichigian, e se questi due stati ottenessero il 
dominio .mia e .chicchi, ammesso che qualcuno mai lì avrà un computer e 
si farà un indirizzo di mail con il loro dominio, una persona verrebbe ad 
inserire il proprio indirizzo mail in un sito italiano! ^____^
In ogni modo, forse un'alternativa più breve e più funzionale esiste di 
sicuro...


sicuro...
Si': estrai l'hostname e fai una query DNS :-)
Leonardo

 qualche microsecondo in più!
Mah, sarò un po OT!
...per caso ho trovato la reg expr che hai postato nel manuale php
all'indirizzo: 
http://it.php.net/manual/it/function.preg-match.php
x la serie: leggo bene il manuale... e si che l'ho aperta un bel po' di
volte quella pagina :)
ciao

 Si': estrai l'hostname e fai una query DNS :-)
 
<?
$email = "
da...@ticino.com
";
if ( preg_match
("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@([a-z0-9-]+(\.[a-z0-9-]+)*)$/i", $email,
$host))
   if (checkdnsrr ($host[2]))
      echo "OK: $host[0]";
   else
      echo "Host non esiste";
else
   echo "Non č un indirizzo email";
?>
Tipo cosě, no?
bye

Tipo cosě, no?
Si', ma l'indirizzo email dovrebbe iniziare per ^[_a-z0-9]+ ... e di solito
il primo carattere e' solo [a-z] (Unix si altera, se gli metti [0-9]).
Inoltre, _credo_ che sia opportuno controllare:
	a) Se $host[2] ha un record MX;
	b) Se esiste mail.$host[2]
Se una qualsiasi di queste opzioni e' vera, dovresti essere a posto.
Leonardo
-- 
Time's angles, mages tell, conceal a place
incredible, beyond the mundane mind;
night-shrouded and between the seas of space
dread creatures drift in the ageless winds.

 [0-9]).
Questa non la sapevo, mi ricordo che il mio primo provider (1995, server
NT) mi aveva dato 
101...@ticino.com
 :)
 
Bye, David

NT) mi aveva dato 
101...@ticino.com
 :)
Dubito che esista uno standard che NT non abbia marzagrato, giusto per
dimostrare che possono :-)
Leonardo

 b) Se esiste mail.$host[2]
mail.qualcosa non ha nessun significato particolare a livello SMTP, un po'
come www.qualcosa non ha significato a livello HTTP, č solo qualcosa di
molto usato.
fe...@delenda.net
"Nothing is as permanent as a temporary kludge."