problema FILTER_VALIDATE_EMAIL

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
Salve, perché se inserisco questo codice nel mio codice per validare l'email che sia corretta o sbagliata non funziona:
PHP:
if (!filter_var($_POST["email"], FILTER_VALIDATE_EMAIL))
		{	
		  $error = "Email non valida!.";
		}

es #luigi etc..

mi da che è giusta?.

il codice è questo:
PHP:
<?php
if($action =="update_email"){ 
	
	
	$db_user_id = (isset($_SESSION["user_id"])) ? trim ((int)$_SESSION["user_id"]): '';
	$query =$db->query( "SELECT * FROM `users` WHERE `id` = '" . $db_user_id. "'" );
	$row = $query->fetch_array();

	if(empty($db_user_id)) {
		echo "ID non specificato";
}
elseif ($query->num_rows==0) { echo "Record non trovato!"; }
else
{
	
	if(isset($_POST["update"]))
	
	{
	if ( array_key_exists ( '_submit_check', $_POST ) )
	{
	if($_POST["email"] != $row["Email"])
	{
		if (!filter_var($_POST["email"], FILTER_VALIDATE_EMAIL))
		{	
		  $error = "Email non valida!.";
		}elseif ( ! checkUnique('Email','users', $_POST['email']) )
		{
				$error = "Email esiste gi&agrave;.";
		}else
		{
		
			$db_email = $db->real_escape_string($_POST["email"]);
		
			

		
		
			$update = "UPDATE `users` SET ";
			$update .= "`Email` = '" . $db_email . "'";
			$update .= " WHERE `ID` = '" . $db_user_id. "'";
			
			if ($db->query( $update ) )
			{
				$msg = 'Aggiornato con sucesso..<br>';
				$msg .= '<a href="index.php?m=users">Torna indietro</a>';
			}
			else {
				$error = "Non &egrave possibile aggiornare. Contattare l'ammministratore";
				$error.="".$db->error."";
			}			 
			}
		 }else
		 {
		    $error = "Nessuna modifica";
		 }
		
	}
	
	
	}
	$query->free_result();
?>

<?php
 if(isset($error)){ echo $error;}
if(isset($msg)){ echo $msg;} else {
?>

			<div align="center"><h2>Utente: <?php echo $row["user"]; ?></h2>
		</div>
	<hr>
	<form class="form" action="index.php?m=users&action=update_email&user_id=<?php echo $db_user_id; ?>" method="post">
	
		<input type="hidden" name="_submit_check" value="1"/> 
	
	<table align="center" width="100%">
		
			<tr>
				<td>Email</td>
			</tr>
			<tr>			
				<td><input class="input" type="text" name="email" id="email" size="25" value="<?php if ( isset ( $_POST['email'] ) ) { echo htmlspecialchars($_POST['email']); } else { echo htmlspecialchars($row['Email']); } ?>" /></td>
			</tr>
			
			<tr>
				<td>
				<input type="submit" name="update" value="Update"   alt="submit" title="submit" />
				<br class="clear" />
				</td>
			</tr>
			
		</table>
					
	</form>
	<?php
			}
		
	}
}

come mai?

grazie mille e buona serata.
 
a me funziona
PHP:
$_POST["email"] = "criric";
if (!filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)) {
    echo "Email non valida!.";
} else {
    echo "Email valida!.";
}
forse hai un problema nel POST prova a stamparlo var_dump($_POST['email'])
 
niente ciric nemmeno con il tuo codice:
dicevo se provi anche te e vediamo come mai:
PHP:
<?php
$_POST["email"] = "#[email protected]";
if (!filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)) {
    echo "Email non valida!.";
} else {
    echo "Email valida!.";
}  
?>

mi da Email valida!.

idee?

uso [PHP: 5.3.8]

grazie mille.
 
anche se metto cosi: sempre valida

PHP:
<?php
$email = "#[email protected]";
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo "Email non valida!.";
} else {
    echo "Email valida!.";
}  
?>
idee ri uso la mia funzione con la regolare espressione ?
 
ciao
prova
PHP:
<?php
$email = "#-+23cririclive.it";//http://www.php.net/manual/en/filter.filters.sanitize.php
$email =filter_var($email, FILTER_SANITIZE_EMAIL);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo "Email non valida!.";
} else {
    echo "Email valida!.";
}  
?>
 
niente neanche cosi:

PHP:
 <?php
$email = "#[email protected]";//http://www.php.net/manual/en/filter.filters.sanitize.php
$email =filter_var($email, FILTER_SANITIZE_EMAIL);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo "Email non valida!.";
} else {
    echo "Email valida!.";
}  
?>

idee?

ma per caso possono esistere anche email con i simboli ?

grazie mille.
 

Discussioni simili