PDA

View Full Version : [PHP] Controllo struttura e-mail


Luca 88
27-10-2009, 18:07
Ho fatto il controllo (lato client) per la struttura della mail (xxx@xxx.xx)

Questo è il codice:

var espressione = /^[_a-z0-9+-]+(\.[_a-z0-9+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$/;
if (!espressione.test(modulo.email.value)) {
alert("ATTENZIONE: e-mail non valida!")
modulo.email.focus()
return false

}


Adesso sto facendo i controlli lato server, questi sono quelli che ho già fatto:


if (($username == '') || ($sesso == '') || ($giorno == '') || ($mese == '') || ($anno == '') || ($email == '') || ($pass == '') || ($pass2 == '')) { echo "Non hai compilato tutti i campi."; }
else {
if ((strlen($username) < '4') || (strlen($username) > '16')) { echo "Errore lunghezza username"; }
else {
if ((strlen($pass) < '6') || (strlen($pass) < '6')) { echo "Errore lunghezza password"; }
else {
if ($pass != $pass2) { echo "Password non coincidono"; }
}
}
}

Mi potete dire come fare in php lo stesso controllo della struttura della mail che ho fatto in javascript?

Inoltre potete dirmi se mancano dei controlli, oppure se si possono ottimizzare quelli che ho già fatto... Grazie

Luca 88
27-10-2009, 18:40
ho risolto cosi la questione della validità della mail:


if (($username == '') || ($sesso == '') || ($giorno == '') || ($mese == '') || ($anno == '') || ($email == '') || ($pass == '') || ($pass2 == '')) { echo "Non hai compilato tutti i campi."; }
else {
if ((strlen($username) < '4') || (strlen($username) > '16')) { echo "Errore lunghezza username"; }
else {
if (!ereg('^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)*\.([a-zA-Z]{2,6})$', $_POST['email'])) { echo "email non valida"; }
else {
if ((strlen($pass) < '6') || (strlen($pass) > '16')) { echo "Errore lunghezza password"; }
else {
if ($pass != $pass2) { echo "Password non coincidono"; }
}
}
}
}


ora funziona... ma mi piacerebbe sapere se ci sono altri controlli da dover fare e se si potrebbe scrivere il tutto in maniera un po piu ?ordinata?

grazie

flx2000
28-10-2009, 10:05
I controlli sono apposto, ma il tuo script funzionerebbe pure se l'utente mettesse come username o come password una sfilza di spazi vuoti.
Probabilmente non è quello che vuoi, pertanto un ereg sul nome e uno sulla pass potrebbero essere un'utile aggiunta.

Luca 88
28-10-2009, 10:56
ho riprovato a fare la registrazione e funziona tutto perfettamente... ma mi viene visualizzato questo errore:

Deprecated: Function ereg() is deprecated in C:\Program Files (x86)\EasyPHP5.3.0\www\VirtuaLovers\registra.php on line 29

cosa puo essere?

flx2000
28-10-2009, 13:32
Basta tradurre il termine "deprecated" per capirlo... :rolleyes:

Se vedi il sito PHP.net dicono chiaramente che ereg è una funzione vecchia soppiantata da preg_match.
Tutto qui.