8796 sujets

Développement web côté serveur, CMS

Bonjour tout le monde,

J'ai un problème avec une condition "If", en faite le if regarde si mon mail est renseigné et si il est correctement écris, si je met pas de else mon insertion ce fait correctement, par contre dés qu'il y a le else il essai d'insérer la ligne vide qui se trouve à la suite de mes données dans ma page en "csv".

Si quelqu'un a eu un soucis similaire ça m'aiderais bien.

Merci d'avance.

Bonne soirée à tous et à toutes.
Modifié par Miala (01 Sep 2009 - 10:01)
Administrateur
Bonsoir, je pense que nous comprendrions un petit peu mieux la situation avec un bout de code merci Smiley cligne
Voici mon if:

if ($mail != "" && ereg(".+(@.+)(.[[:alpha:]]{2}([[:alpha:]]?))$",$mail))
						{
							$etat_erreur = "";
							$nb_import++;
						}
						else
						{
							$etat_erreur = 7;
							$nb_import_error++;	
						}
						
						if (existMail($mail) == TRUE && $etat==8 || $etat==9)
						{
							echo '<h1>Le mail existe déjà<</h1>';
							$nb_des_md++;
						}
						else
						{
							/*Ajouter un nouvel enregistrement dans la table*/
							$req_fin = "VALUES ('".$client."',";
							foreach ($liste as $values)
							{
								$req_fin.="'".filtredata($values)."',";
							}
							$req_fin .="'".$etat_erreur."','".$source."','".$date."','".$nom."') ";
							
							echo '<br/>'.$compt_import.' ';
							echo $req=$req_debut.$req_fin;
							
							$result=mysqli_query($db_link, $req) ;
							
							if(mysqli_error($db_link))
							{/*Erreur dans la base de données*/
								print "Erreur dans la base de données : ".mysqli_error($db_link);
								print "<br />Importation stopée.";
								exit();
							}	
						}


Juste avant j'ouvre mon fichier et je le parcourt, cette partie fonctionne bien. Mais si il y a besoin que je le rajoute y a pas de soucis.
mais si je ne pense pas que cela arrange ton problème, sans en résoudra un autre

if (existMail($mail) == TRUE && ($etat==8 || $etat==9))


au lieu de


if (existMail($mail) == TRUE && $etat==8 || $etat==9)
Hello,

masseuro a écrit :
mais si je ne pense pas que cela arrange ton problème, sans en résoudra un autre
Hem... pas très claire comme phrase ! Smiley langue

D'ailleurs, même si ça semble plus logique, c'est un peu dur à dire puisqu'on ne sait pas à quoi correspondent $etat==8 et $etat==9.


@Miala > cela semble étrange de passer par le test if (existMail($mail)... dans le cas d'un email invalide. Je ferais plutôt :
if ($mail != "" && ereg(".+(@.+)(.[[:alpha:]]{2}([[:alpha:]]?))$",$mail)) {
	$etat_erreur = "";
	$nb_import++;
	
	if (existMail($mail) && ($etat==8 || $etat==9)) {
		echo '<h1>Le mail existe déjà<</h1>';
		$nb_des_md++;
		$etat_erreur = xx; // il me semble que ça manque
	} else {
		/*Ajouter un nouvel enregistrement dans la table*/
		$req_fin = "VALUES ('".$client."',";
		foreach ($liste as $values) {
			$req_fin.="'".filtredata($values)."',";
		}
		$req_fin .="'".$etat_erreur."','".$source."','".$date."','".$nom."') ";
		
		echo '<br/>'.$compt_import.' ';
		echo $req=$req_debut.$req_fin;
		
		$result=mysqli_query($db_link, $req) ;
		
		if(mysqli_error($db_link)) { /*Erreur dans la base de données*/
			print "Erreur dans la base de données : ".mysqli_error($db_link);
			print "<br />Importation stopée.";
			exit();
		}
	}	
} else {
	$etat_erreur = 7;
//	$nb_import_error++; // il me semble que c'est en trop
}

Modifié par Heyoan (31 Aug 2009 - 19:32)
Bonjour,

Merci pour vos réponses, j'ai essayer ton code Heyoan, il insère bien mes mails, mais pas ceux qui sont erroné.

Il faut que tout les mails soit insérés dans la base de données , pas que ceux qui sont correct. C'est justement là mon problème, ils les insère avec mon ancien code mais il affiche une erreur parce qu'il veut lire la ligne vide de mon fichier.

Bonne matinée.
Merci pour votre aide, j'ai modifier le code et maintenant ça fonctionne correctement.

Voici le code modifier:


if ($mail != "") 
{ 
	$etat_erreur = ""; 
	$nb_import++; 
	if(ereg(".+(@.+)(.[[:alpha:]]{2}([[:alpha:]]?))$",$mail))
	{
		if (existMail($mail) && ($etat==8 || $etat==9)) 
		{ 
			echo '<h1>Le mail existe déjà<</h1>'; 
			$nb_des_md++;  
		} 
		else 
		{ 
			$etat_erreur = "";
			/*Ajouter un nouvel enregistrement dans la table*/ 
			$req_fin = "VALUES ('".$client."',"; 
			foreach ($liste as $values) 
			{ 
				$req_fin.="'".filtredata($values)."',"; 
			} 
			$req_fin .="'".$etat_erreur."','".$source."','".$date."','".$nom."') "; 
									 
			echo '<br/>'.$compt_import.' '; 
			echo $req=$req_debut.$req_fin; 
									 
			$result=mysqli_query($db_link, $req) ; 
									 
			if(mysqli_error($db_link)) 
			{ /*Erreur dans la base de données*/ 
				print "Erreur dans la base de données : ".mysqli_error($db_link); 
				print "<br />Importation stopée."; 
				exit(); 
			} 
		} 
	}
	else
	{
		$etat_erreur = 7;
		/*Ajouter un nouvel enregistrement dans la table*/ 
		$req_fin = "VALUES ('".$client."',"; 
		foreach ($liste as $values) 
		{ 
			$req_fin.="'".filtredata($values)."',"; 
		} 
		$req_fin .="'".$etat_erreur."','".$source."','".$date."','".$nom."') "; 
								 
		echo '<br/>'.$compt_import.' '; 
		echo $req=$req_debut.$req_fin; 
								 
		$result=mysqli_query($db_link, $req) ; 
								 
		if(mysqli_error($db_link)) 
		{ /*Erreur dans la base de données*/ 
			print "Erreur dans la base de données : ".mysqli_error($db_link); 
			print "<br />Importation stopée."; 
			exit(); 
		}
		$nb_import_error++;
	}
} 


Encore merci.

Bonne journée tout le monde.