controlli campi email con preg_match con esito sballato

ciao ragazzi ho un problema con i controlli dei campi email vi spiego i controlli che ho applicato dovrebbero darmi i messaggi d errore se i campi di testo sono vuoti , e darmi il messaggio d errore anche se l email a caratteri non validi pero non mi fa cosi come dovrebbe

se io nel form non scrivo niente, mi da l errore , sempre nel form se lascio i capi vuoti e metto un email con caratteri non ammessi mi da l errore,pero se io compilo tutti i campi e l email la scrivo con caratteri non validi m invia ugualmente dandomi un messaggio d errore cosa sto sbagliando? mi date una mano? grazie

// Gets the POST Headers - the Flash variables 
$action = $_POST['action'] ; 
$nome = $_POST['nome'] ; 
$cognome = $_POST['cognome'] ;
$telefono = $_POST['telefono'] ;
$oggetto = $_POST['oggetto']; 
$email = $_POST['email']; 
$commento = $_POST['commento']; 
$privacy = $_POST['privacy']?1:0;
$code = $_POST['code'];

$CONFIG = array(
"nome" => "check_global",
"cognome" => "check_global",
"telefono" => "check_global",
"oggetto" => "check_global",
"email" => "check_global",
"commento" => "check_global",
"privacy" => "check_global",
"code" => "check_global"
);
function check_username($nome,$cognome,$telefono,$oggetto,$email,$commento,$privacy,$code)
{
global $CONFIG;
$nome = trim($nome);
$cognome = trim($cognome);
$telefono = trim($telefono);
$oggetto = trim($oggetto);
$email = trim($email);
$commento = trim($commento);
$privacy = trim($privacy);
$code = trim($code);
if ($nome == "")
{echo"Il campo nome  obligatorio!<br>";}
if ($cognome == "")
{echo"Il campo cognome  obligatorio!<br>";}
if ($telefono == "")
{echo"Il campo telefono  obligatorio!<br>";}
if ($oggetto == "")
{echo"Il campo oggetto  obligatorio!<br>";}
if ($email == "")
{echo"Il campo email  obligatorio!<br>";}
elseif (!preg_match("/^[-0-9A-Z_\.]{1,50}@([-0-9A-Z_\.]+\.){1,50}([0-9A-Z]){2,4}$/i", $email)) 
{echo"Il seguente indirizzo email :<b>$email</b><br>E'composto da caratteri non validi!<br>";}
if ($commento == "")
{echo"Il campo messaggio  obligatorio!<br>";}
//if($_POST['code'] != $_SESSION['__img_code__'] = md5($code))
//{echo"errore!<br>";}
else{return"OK";}

}

if ($action == "send") 
{ 
//Innanzitutto controlliamo la var.le name: 
$controllo = check_username($nome,$cognome,$telefono,$oggetto,$email,$commento,$privacy,$code);

if ($controllo != "OK") 
{ 
echo $controllo; 

//Qui potresti anche far visualizzare una cosa del genere: 
//echo "<BR><A HREF='$urlpatch/user/rememberpass.php'>Ritorna alla registrazione</A>"; 
}
else
{ 
mysql_select_db($CONFIG['dbname']); 
$sql_insert = "INSERT INTO contact (nome,cognome,telefono,email,oggetto,commento,date,ip) VALUES('$nome','$cognome','$telefono','$email','$oggetto','$commento','".date('Y-m-d H:i:s')."','".$_SERVER['REMOTE_ADDR']."')"; 

if (mysql_query($sql_insert))
{ 
echo "Ciao $nome il messaggio  stato inviato con successo <br>";
} 
else
{
die(mysql_error());
} 

// Chiude
$DB->disconnect();
inviato 9 anni fa
roccochiolo
X 0 X

prova a sostituire

elseif (!preg_match

con

if (!preg_match

:bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda