Questo è il problema!
Sto scrivendo un form per spedire e-mail dal mio sito, in sostituzione di quello che c'è già, che fa alquanto schifetto.
Il nuovo form così com'è, funziona benone, ma quando tento di verificare la correttezza del campo e-mail, mi sorge un problema:
- se nel box email non scrivo nulla, giustamente vengo avvisato dell'errore.
- se nel box inserisco qualcosa, senza mettere ne @ e ne il punto, giustamente vengo avvisato della mancanza.
- se nel box inserisco solo un punto, vengo giustamente avvisato della mancanza del @
- Ma se nel box inserisco anche solo @ il codice mi viene validato e la mail inoltrata, ovviamente con errore sul server.
In pratica, ogni volta che incontra un @ il codice della mail viene validato e questo non è un buon controllo. Questo qui sotto è un estratto del codice:
[code:1:e805f03ba7]
if (trim($mailMitt)=='') { // E-mail mittente, campo vuoto.
echo "<li>Manca l'e-mail del <b>mittente</b></li><br>\n";
$errori++;
} else {
if (!eregi("@", trim($mailMitt))) { // E-mail mittente, manca la @.
echo "<li>L'e-mail del <b>mittente</b> è scritta male! Manca <b>@</b></li><br>\n";
$errori++;
}
if (!eregi(".", trim($mailMitt))) { // E-mail mittente, manca il (.)
echo "<li>L'e-mail del <b>mittente</b> è scritta male! Manca il <b>punto</b></li><br>\n";
$errori++;
}
}
[/code:1:e805f03ba7]
Il flag $errori non serve a conteggiare gli errori, ma evidenzia solo se ci sono, parte da una condizione 0 errori, e via via viene incrementato.
Più avanti nel codice viene fatto un confronto su di esso, per verificare se è maggiore di 0, in questo caso viene evidenziata una scritta ed un rimando alla pagina precedente, dove si possono correggere gli errori sul fom di invio.
Chi può aiutarmi a risolvere il problema?
Grazie in anticipo. :)