Newsgroup: it.comp.lang.javascript
Titolo: Validazione Email + DNS Resolving in JS (?)

Ciao a tutti,
chi mi può fornire lo script di validazione di un campo email  (in modo
che... se non è corretto, alla pressione del pulsante di invio ti avvisa che
non è corretto) ?
Infine vorrei sapere se e come è possibile risolvere un indirizzo IP/DNS
usando javascript... eventualmente con qualche function specifica, boh non
so...
Ringrazio per la risposta.
Cooper.

vista la seconda domanda (risolvere indirizzo), credo che anche la prima non
sia un "e-mail formalmente valida" ma "e-mail realmente esistente".
Nulla da fare in js lato client (mi sa anche ben poco lato server...)

 ha scritto nel messaggio
news:ave9cg$el885$1...@ID-147253.news.dfncis.de...


ci dovrebbe essere un regexp su 
jsdir.com
 che fa al caso tuo (per la
verifica sintattica e-mail).

 so...
va be' che js e python sono simili, ma non cosi' tanto... ;))
volendo potresti verificare che un indirizzo di una macchina su cui gira un
demone http esista, aprendo una finestra con javascript
window.open('127.0.0.1');
e verificare onload se ti ha sparato qualcosa, ma credo che tutto cio'
contrasti con le restrizioni di sicurezza :/
~~
artemis.alpeia

 meno 
precisa.ma
 sicuramente fattibile.
La regexp cui fa riferimento cristiano è nel tutorial: 
http://www.jsdir.com/tutorials
-- 
Ciao, Riccardo
------------------------------------------------------------------------
http://www.jsdir.com
 ---- Bring Your Site To Life!!!!
------------------------------------------------------------------------
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - D2D006
------------------------------------------------------------------------
 ----> itALY = it <----

 --
A dire il vero la strada che intendevo seguire era ben diversa... che
l'email esista o meno questo non è un problema che mi riguarda... in quanto
in entrambi i casi viene restituito un messaggio di errore o di successo
direttamente dal server SMTP.
Ciò che intendevo fare era verificare la validità di un dominio, ovvero se
quel dominio a cui fa riferimento l'email esiste oppure no.
Esempio ho l'email del tipo:  USERNAME@DOMAIN. con USERNAME il nome scelto
dall'utente e DOMAIN  un dominio di secondo o più livelli (es:  
PIPPO.COM
).
Se il dominio esiste, chiaramente esso è associato a una macchina e quindi è
risolvibile vale a dire 
PIPPO.COM
 <---> X.X.X.X  in questo senso.
In caso contrario significa che non è risolvibile.
La funzione quindi sarebbe un qualcosa del tipo:
var result = false;
function resolveDND(domain) {
 <codice>
if (domain) {
   result = true;
  }
}
ovvero restituendo un true o false a secondo se riesce o meno a ottenere il
corrispettivo DNS/IP.
Fatto ciò sarebbe stato sufficiente nel campo di testo verificare la
presenza della @ e al tempo stesso la condizione result=true per assicurarsi
che l'email sia sintatticamente corretta.
Dicevo che non ha importanza se esiste o meno, in quanto, se esiste, il
messaggio eventualmente viene spedito e quindi ricevuto dal server POP....
se invece non esiste il server a cui fa riferimento restituisce un errore.
Non interessa la gestione dell'errore restituito in quanto si parte dal
presupposto che chi inserisca una email inserisca la propria e quindi una
esistente... però è più comodo un controllo sul dominio per prevenire errori
di digitazione.....
L'idea era questa, nulla di complicato tipo la gestione di un link generato
al volo etc etc etc, si verissimo che ti assicura l'esistenza dell'email e
l'appartenenza a colui che ha fatto la richiesta etc etc... ma in questo
caso specifico è qualcosa di superfluo e non rilevante.
Cooper.

 In caso contrario significa che non è risolvibile.
Capito, allora (magari usando una pop-up) puoi fare questa verifica con 
PHP che mi sembra abbia gia' pronto un oggetto.
Tipo che tu lanci la pop-up e fermi lo script.
Poi la pop-up dopo la verifica esegue (con opener) una funzione ok() 
nok() a seconda del risultato.



wrote:

Dunque... trattandosi di script per html il protocollo coinvolto nelle
istruzioni di scripting sarà sempre e rigidamente solo l'HTTP lato
client. Lato server nn so... nn ho mai provato ad implementare nulla.
Il fatto che tu voglia eseguire query su altri canali esclude
immediatamente javascript dalla lista dei linguaggi utilizzabili.
Lato server si potrebbe fare qualcosa con oggetti COM o DLL, ma
comunque non saprei darti suggerimenti/istruzioni su come
implementarli.
ma... perobabilmente con un pò di pazzia si può fare qualcosa anche
lato client utilizzando frames nascosti e leggendo le proprietà da
essi. Ti butto l'idea:
appena viene validato il campo e-mail prendi la parte relativa al
dominio e consideri il suffisso (TLD) dello stesso. Quest'ultimo è
determinante per la selezione del database Whois a cui fare
riferimento. Successivamente in base a quest'ultimo esegui delle query
di whois utilizzando i seguenti indirizzi:
[esempio: nomedominio]
-Se si tratta di un dominio .com
http://www.networksolutions.com/cgi-bin/whois/whois?STRING=nomedominio.com&SearchType=do
-Se si tratta di un dominio .it
 devi inviare tramite metodo POST i dati relativi ad esso per
 avere la pagina risultante. lo fai con una form nascosta 
 alla quale darai un .submit()
 <form name=whoisquery action=
http://www.nic.it/cgi-bin/whois.pl
 method=post>
 <input type=hidden value=
nomedominio.it
 name=whois>
 <input type=hidden value=Search name=submit>
 </form>
-Se si tratta si altri TLC vai tranquillo su:
 [qui ho usato 
nomedominio.biz
, tu metterai quello inserito :) ]
http://www-whois.internic.net/cgi/whois?whois_nic=nomedominio.biz&type=domain
e qui arriva il difficile... dovresti riuscire a leggere il contenuto
del frame ed individuare parole chiavi tipo "not Found" o "No entries
found" con istruzioni dipo InnerHTML o Innertext ... Sempre che le
impostazioni di protezione te lo consentano.
PS: per verificare il momento in cui viene caricata la pagina, piazza
un event-handler onload direttamente nel FRAMESET (<frame onload....
mi sembra)[Testato su Explorer :P ] 
--
Ciao!
Davide
[DAOC PG]Armorgod Troll Sciamano - Midgard Vortigern[/DAOC PG]