Bonjour à tous,

voilà, je pense être victime d'injection mysql.
Pouvez-vous me dire si cette requête a une faille :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
 
if (isset($_POST['valide'])) // si clique sur le bouton ok
								{
 
						 		    if(empty($_SESSION["mail"])) // si l'utilisateur n'est pas connecté
									{
										if(isset($_POST["mail"])) {$mail = $_POST['mail'];}	else { $mail = "";}
										if(isset($_POST["mdp"])) {$mdp = $_POST['mdp'];} else { $mdp = "";}
									}
 
									if(empty($erreur[0]))
									{
										include ('connect.php');
										/* on va d abord chercher si le client n'existe pas en effectuant un test sur la boîte mail */
									    $sql = sprintf("select * from flatforswap_adherent where mail=%s and mdp=%s and valide !=%s", quote_smart($mail), quote_smart($mdp), quote_smart('0'));
										$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
										  if (mysql_num_rows($req) == 1) 
										  {
											 $data = mysql_fetch_assoc($req);
											 $valide = $data['valide'];
											 if ($valide == 2){
											 $verifexist = true;}
											 elseif($valide == 1){
											 $verifexist = false;
											 $erreurc[] = '<center><font color="#FF0000">'.$idem_txt0032.'</font></center>';}
										  }
										  else
										  {
											$verifexist = false;
											$erreurc[] = '<center><font color="#FF0000">'.$idem_txt0033.'</font></center>';
										  }
										  mysql_close();
										  if ($verifexist == 'true') 
										  {
											$_SESSION['mail'] = $data['mail']; /* l'adhérent est maintenant connecté */
 
											include ('connect.php');
											// $sqld = sprintf("SELECT id_adh FROM flatforswap_adherent WHERE mail=%s", quote_smart($_SESSION["mail"]));
											// 20/04/2012 on rajoute la clause WHERE $valide = 2
											$sqld = sprintf("SELECT id_adh FROM flatforswap_adherent WHERE mail=%s and valide =%s", quote_smart($_SESSION["mail"]), quote_smart('2'));
											$reqd = mysql_query($sqld) or die('Erreur SQL : <br />'.$sqld);
											$datad = mysql_fetch_assoc($reqd);
											$id_adh = $datad['id_adh'];
											$_SESSION['id_adh'] = $id_adh; /* on met id_adh en session afin d'éviter des requête inutiles */
										  }
							     	}
 
									// message d'erreur
									//if(isset($erreurc[0])) {for($i=0;$i<sizeof($erreurc);$i++) { echo $erreurc[$i];}} 
 
								}
Merci d'avance pour votre aide.