Page 1 sur 3

securité upload

Posté : 19 avr. 2006, 05:12
par Chile
Bonjour 8)
J'essaye d'adapter les secus(extension et poids) du tuto sur l'upload, a mon script, mais tout passe :shock:
voici le debut de mon code :
<?php
// je remonte la déclaration avant la récup du fichier 
$nomFichier = ""; // déclaration des variables 
$chemin = ""; 

//Script Upload
//on vérifies que le champ est bien rempli:
if(!empty($_FILES["photo"]["name"]))   {
$nomFichier    = $_FILES["photo"]["name"] ;  	//nom du fichier choisi:
$nomTemporaire = $_FILES["photo"]["tmp_name"] ;  	//nom temporaire sur le serveur:
$typeFichier   = $_FILES["photo"]["type"] ;   	//type du fichier choisi:
$poidsFichier  = $_FILES["photo"]["size"] ;   	//poids en octets du fichier choisit:
$codeErreur    = $_FILES["photo"]["error"] ;   	//code de l'erreur si jamais il y en a une:

unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 100000;

//chemin qui mène au dossier qui va contenir les fichiers upload:
$chemin = "./images/" ;

 // vérifications
   if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
    {
$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
	}
	elseif( file_exists($_FILES['photo']['tmp_name'])
	and filesize($_FILES['photo']['tmp_name']) > $taille_max)
	{
$erreur = 'Votre fichier doit faire moins de 100Ko !';
	}

//l'upload !

	if(move_uploaded_file($nomTemporaire, $chemin.$nomFichier));
		 }
et voici le debut du tuto :
<?php
 if(isset($_FILES['photo']))
{
// params  unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg'); 
$taille_max = 100000;  
$dest_dossier = '/home/damien/photos/';
// utilisez également des slashes sous windows : $dest_dossier  = 'd:/damien/photos/';  
// vérifications
  if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
  { 
$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
    }  elseif( file_exists($_FILES['photo']['tmp_name'])
           and filesize($_FILES['photo']['tmp_name']) > $taille_max)
  {    
$erreur = 'Votre fichier doit faire moins de 500Ko !';  }  
// copie du fichier  if(!isset($erreur))  {
dois je aussi adapter mon formulaire ??

merci

Posté : 19 avr. 2006, 11:06
par goeb
salut,

tout d'abord, sache qu'au moment où tu fais tous ces contrôles, ton fichier est déjà uploadé (transféré sur le serveur web).

Ensuite, même s'il y a une erreur, tu fais le move_uploaded_file.
il faudrait plutôt faire un truc du genre :
if (! isset($erreur)) {
  move_uploaded_file(...);
}

Posté : 26 avr. 2006, 16:04
par Chile
salut,
merci goeb pour ta reponse, mais impossible de le mettre en place .
ca vient surement de moi :?
bon, j'abuse , mais est-ce qu'il y 'aurait une bonne ame pour m'aider a mettre en plce mes verification d'upload :oops:
voici mon code (qui fonctionne sans les verifs)
<?php
// je remonte la déclaration avant la récup du fichier 
$nomFichier = ""; // déclaration des variables 
$chemin = ""; 

//Script Upload
//on vérifies que le champ est bien rempli:
if(!empty($_FILES["photo"]["name"]))   {
$nomFichier    = $_FILES["photo"]["name"] ;  	//nom du fichier choisi:
$nomTemporaire = $_FILES["photo"]["tmp_name"] ;  	//nom temporaire sur le serveur:
$typeFichier   = $_FILES["photo"]["type"] ;   	//type du fichier choisi:
$poidsFichier  = $_FILES["photo"]["size"] ;   	//poids en octets du fichier choisit:
$codeErreur    = $_FILES["photo"]["error"] ;   	//code de l'erreur si jamais il y en a une:

unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 100000;

//chemin qui mène au dossier qui va contenir les fichiers upload:
$chemin = "./images/" ;

 // vérifications
   if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
    {
$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
	}
	elseif( file_exists($_FILES['photo']['tmp_name'])
	and filesize($_FILES['photo']['tmp_name']) > $taille_max)
	{
$erreur = 'Votre fichier doit faire moins de 100Ko !';
	}

//l'upload !

if(move_uploaded_file($nomTemporaire, $chemin.$nomFichier));
		 }
	
//debut script dream mise a jour table
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  $insertSQL = sprintf("INSERT INTO basepays (id, pays, site, photo, chemin) VALUES (%s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['id'], "int"), 
                       GetSQLValueString($_POST['pays'], "text"), 
                       GetSQLValueString($_POST['site'], "text"), 
                       GetSQLValueString($nomFichier, "text"), // utilisation des variables nom 
                       GetSQLValueString($chemin, "text")); // et chemin 

  mysql_select_db($database_pays, $pays);
  $Result1 = mysql_query($insertSQL, $pays) or die(mysql_error());

  }
  header(sprintf("Location: %s", $insertGoTo));
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Document sans titre</title>
</head>

<body>
<form action="<?php echo $editFormAction; ?>" method="post" enctype="multipart/form-data" name="form1">
  <table align="center">
    <tr valign="baseline">
      <td nowrap align="right">Pays:</td>
      <td><select name="pays" id="pays">
        <option value="argentine" selected>Argentine</option>
        <option value="bresil">Bresil</option>
        <option value="chili">Chili</option>
        <option value="espagne">Espagne</option>
        <option value="france">France</option>
        <option value="italie">Italie</option>
      </select></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Site:</td>
      <td><select name="site" id="site">
        <option value="amazonie" selected>Amazonie</option>
        <option value="cote">Cote</option>
        <option value="desert">Desert</option>
        <option value="montagne">Montagne</option>
      </select></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Photo:</td>
      <td><input name="photo" type="file" id="photo"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">&nbsp;</td>
      <td><input type="submit" value="Insérer l'enregistrement"></td>
    </tr>
  </table>
  <input type="hidden" name="id" value="">
  <input type="hidden" name="chemin" value="">
  <input type="hidden" name="MM_insert" value="form1">
</form>
<p>&nbsp;</p>
</body>
</html>

Posté : 26 avr. 2006, 16:12
par Ryle
if(move_uploaded_file($nomTemporaire, $chemin.$nomFichier)); 
pourquoi un if si tu ne gère pas les erreurs éventuelles du move_uploaded_file ? Autant faire directement :
move_uploaded_file($nomTemporaire, $chemin.$nomFichier);
Quant à l'erreur si le fichier est trop gros ou pas au bon format, il te suffit en effet de tester s'il y en a eu une en reprenant le code de goeb par exemple, et en ne faisant le move_uploaded_file ci dessus, que lorsque tu n'en as pas...

Une p'tite remarque en passant, si jamais l'extension du fichier n'est pas en minuscule, il ne sera pas accepté... enfin une fois que le control aura été mis en place ;)

Posté : 26 avr. 2006, 16:42
par Chile
salut Ryle,
j'ai changé le script au niveau de l'upload, mais j'ai une parse error a la ligne 135 (mon code va jusqu'a 132)...
voici de nouveau la partie upload de mon script:
//Script Upload
//on vérifies que le champ est bien rempli:
if(!empty($_FILES["photo"]["name"]))   {
$nomFichier    = $_FILES["photo"]["name"] ;  	//nom du fichier choisi:
$nomTemporaire = $_FILES["photo"]["tmp_name"] ;  	//nom temporaire sur le serveur:
$typeFichier   = $_FILES["photo"]["type"] ;   	//type du fichier choisi:
$poidsFichier  = $_FILES["photo"]["size"] ;   	//poids en octets du fichier choisit:
$codeErreur    = $_FILES["photo"]["error"] ;   	//code de l'erreur si jamais il y en a une:

unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 100000;

//chemin qui mène au dossier qui va contenir les fichiers upload:
$chemin = "./images/" ;

 // vérifications
   if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
    {
$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
	}
	elseif( file_exists($_FILES['photo']['tmp_name'])
	and filesize($_FILES['photo']['tmp_name']) > $taille_max)
	{
$erreur = 'Votre fichier doit faire moins de 100Ko !';
	}

//l'upload !
if (! isset($erreur)) {
	move_uploaded_file($nomTemporaire, $chemin.$nomFichier);
		 }
	
//debut script dream mise a jour table
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  $insertSQL = sprintf("INSERT INTO basepays (id, pays, site, photo, chemin) VALUES (%s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['id'], "int"), 
                       GetSQLValueString($_POST['pays'], "text"), 
                       GetSQLValueString($_POST['site'], "text"), 
                       GetSQLValueString($nomFichier, "text"), // utilisation des variables nom 
                       GetSQLValueString($chemin, "text")); // et chemin 

  mysql_select_db($database_pays, $pays);
  $Result1 = mysql_query($insertSQL, $pays) or die(mysql_error());

  }
  header(sprintf("Location: %s", $insertGoTo));
}

Posté : 26 avr. 2006, 16:54
par Ryle
En général quand tu as une erreur tout à la fin du fichier, c'est que tu as une acolade ou une parenthèse qui est mal équilibrée.. je ne la vois pas à premiere vue sur le code que tu as donné, mais peut être avant ou apres ?

A noter qu'en cas d'erreur également, tu ne devrais pas insérer ton enregistrement en base à mon avis :)

Posté : 26 avr. 2006, 17:09
par mere-teresa
Parse error : le plus souvent est un ; oublié
sinon il met unexpected (

Regarde avant la ligne indiquée.

Posté : 26 avr. 2006, 17:36
par Chile
merci pour votre aide,
je pense que l'erreur, vient d'une acolade
j'ai retouché seulement ce code:
//l'upload ! 
if (! isset($erreur)) { 
    move_uploaded_file($nomTemporaire, $chemin.$nomFichier); 
         } 
qui etait avant :
if(move_uploaded_file($nomTemporaire, $chemin.$nomFichier));
		 }
il y a une acolade seule (apparement)
petite lecon d'acolade please ? :wink:

Posté : 26 avr. 2006, 17:44
par Chile
je pense avoir trouvé pour l'acolade, car je n'ai plus le nessage d'erreur,
par contre u fichier autre que jpg..., passe :cry:
pouvez vous me dire ou je dois modifier ?
<?php
// je remonte la déclaration avant la récup du fichier 
$nomFichier = ""; // déclaration des variables 
$chemin = ""; 

//Script Upload
//on vérifies que le champ est bien rempli:
if(!empty($_FILES["photo"]["name"]))   
$nomFichier    = $_FILES["photo"]["name"] ;  	//nom du fichier choisi:
$nomTemporaire = $_FILES["photo"]["tmp_name"] ;  	//nom temporaire sur le serveur:
$typeFichier   = $_FILES["photo"]["type"] ;   	//type du fichier choisi:
$poidsFichier  = $_FILES["photo"]["size"] ;   	//poids en octets du fichier choisit:
$codeErreur    = $_FILES["photo"]["error"] ;   	//code de l'erreur si jamais il y en a une:

unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 100000;

//chemin qui mène au dossier qui va contenir les fichiers upload:
$chemin = "./images/" ;

 // vérifications
   if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
    {
$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
	}
	elseif( file_exists($_FILES['photo']['tmp_name'])
	and filesize($_FILES['photo']['tmp_name']) > $taille_max)
	{
$erreur = 'Votre fichier doit faire moins de 100Ko !';
	}

//l'upload ! 
if (! isset($erreur)) { 
    move_uploaded_file($nomTemporaire, $chemin.$nomFichier); 
         } 
	
//debut script dream mise a jour table
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  $insertSQL = sprintf("INSERT INTO basepays (id, pays, site, photo, chemin) VALUES (%s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['id'], "int"), 
                       GetSQLValueString($_POST['pays'], "text"), 
                       GetSQLValueString($_POST['site'], "text"), 
                       GetSQLValueString($nomFichier, "text"), // utilisation des variables nom 
                       GetSQLValueString($chemin, "text")); // et chemin 

  mysql_select_db($database_pays, $pays);
  $Result1 = mysql_query($insertSQL, $pays) or die(mysql_error());

  $insertGoTo = "indexexemple.htm";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}
?>

Posté : 26 avr. 2006, 18:23
par Ryle
Petite leçon d'acolade donc :)
if(move_uploaded_file($nomTemporaire, $chemin.$nomFichier)); 
         } 
En virant le if cela devient :
move_uploaded_file($nomTemporaire, $chemin.$nomFichier); 
         } 
En rajoutant le contrôle sur l'erreur :
if (! isset($erreur)) { // j'ajoute une acolade ouvrante au début de mon test
  move_uploaded_file($nomTemporaire, $chemin.$nomFichier); 
}// j'ajoute une acolade fermante à la fin de mon test
         } // s'il y avait déjà une acolade, c'est qu'elle avait toutes les chances de servir à quelque chose, alors j'y touche po ! ;) 
Maintenant quand tu dis qu'un fichier autre que jpg passe, ca veut dire quoi ? qu'il est déposé sur le serveur dans ton dossier ? que son nom est enregistré dans ta base (c'est normal, tu n'as pas rajouté de controle pour savoir s'il y avait eu une erreur avant de faire le insert) ? c'est quoi l'extension de ce fichier (parce que si c'est png, c'est normal ;))

Posté : 26 avr. 2006, 19:20
par Invité
bonne question :)
eh bien, un fichier autre que jpg, comme .txt par exemple:
les infos rentrent dans la base
le fichier n'esp pas uploader dans le repertoire
et je n'ai pas le message "Veuillez sélectionner un fichier de type png, gif ou jpg"

Posté : 26 avr. 2006, 19:47
par Ryle
bonne question :)
Et tu me remercies de l'avoir posé ? ;)
eh bien, un fichier autre que jpg, comme .txt par exemple:
les infos rentrent dans la base
C'est normal, comme dit plus haut, tu ne fais pas de test sur l'erreur avant de faire l'insert. Donc succès ou erreur, il insère toujours en base... faudrait peut être refaire un test sur $erreur hmm ? :)
le fichier n'esp pas uploader dans le repertoire
Bah ca c'est plutot une bonne chose vu que le type n'est pas bon :)
et je n'ai pas le message "Veuillez sélectionner un fichier de type png, gif ou jpg"
A quel moment dans ton code t'attends tu à voir apparaitre le message d'erreur ? et pourquoi selon toi n'apparait-il pas ? ;)

Posté : 26 avr. 2006, 19:59
par Chile
:) comment faire un test sur l'erreur ?

lorsque je vois la partie haute du tuto sur l'upload:
 
if(isset($_FILES['photo'])) 
{ 
// params  unset($erreur); 
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg'); 
$taille_max = 100000;   
$dest_dossier = '/home/damien/photos/'; 
// utilisez également des slashes sous windows : $dest_dossier  = 'd:/damien/photos/';   
// vérifications 
  if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) ) 
  { 
$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !'; 
    }  elseif( file_exists($_FILES['photo']['tmp_name']) 
           and filesize($_FILES['photo']['tmp_name']) > $taille_max) 
  {     
$erreur = 'Votre fichier doit faire moins de 500Ko !';  }   
// copie du fichier  if(!isset($erreur))  { 
et que je regarde la partie haute du miens, cette partie de code me semble un peu bordelique, j'ai l'impression d'avoir pas de trucs inutile...ou non ?
if(!empty($_FILES["photo"]["name"]))    {
$nomFichier    = $_FILES["photo"]["name"] ;  	//nom du fichier choisi:
$nomTemporaire = $_FILES["photo"]["tmp_name"] ;  	//nom temporaire sur le serveur:
$typeFichier   = $_FILES["photo"]["type"] ;   	//type du fichier choisi:
$poidsFichier  = $_FILES["photo"]["size"] ;   	//poids en octets du fichier choisit:
$codeErreur    = $_FILES["photo"]["error"] ;   	//code de l'erreur si jamais il y en a une:

unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 100000;

//chemin qui mène au dossier qui va contenir les fichiers upload:
$chemin = "./images/" ;
pour repondre a ta question, oui c'est une bonne chose que le fichier ne soit pas uploadé s'il n repond pas au conditions, mais je souhaiterai un message disant que ce n'est pas possible de continuer la procedure (avant l'envoi sur la base) :?

Posté : 27 avr. 2006, 11:43
par Ryle
Et tu fais quoi là si c'est pas un test sur l'erreur, pour savoir si tu dois déplacer le fichier ou pas ?! :)
//l'upload ! 
if (! isset($erreur)) { 
    move_uploaded_file($nomTemporaire, $chemin.$nomFichier); 
         } 
Si la variable $erreur n'est pas définie (! isset($erreur)), c'est que tu n'as pas eu d'erreur. Tu peux donc l'utiliser pour tester si tu dois faire ou non ton insert, et si tu dois afficher ou non un message d'erreur :) (message d'erreur qui en l'occurence est contenu dans cette variable)

Posté : 08 mai 2006, 03:15
par Chile
Salut,
Merci pour les explications Ryle, mais plus ca va moins je comprends
les tests :?
le seul truc qui fonctionne bien dans mon code, c'est que les fichiers autres que ceux cités ne passent pas dans le repertoire nommé.
par contre les données rentrent dan la base et je n'ai pas de message d'erreur.
ben ca serait sympa si qlq pouvait regarder mon code et me dire concretement ce que je dois retoucher :(
merci
<?php
// je remonte la déclaration avant la récup du fichier 
$nomFichier = ""; // déclaration des variables 
$chemin = ""; 

//Script Upload
//on vérifies que le champ est bien rempli:
if(!empty($_FILES["photo"]["name"]))    {
$nomFichier    = $_FILES["photo"]["name"] ;  	//nom du fichier choisi:
$nomTemporaire = $_FILES["photo"]["tmp_name"] ;  	//nom temporaire sur le serveur:
$typeFichier   = $_FILES["photo"]["type"] ;   	//type du fichier choisi:
$poidsFichier  = $_FILES["photo"]["size"] ;   	//poids en octets du fichier choisit:
$codeErreur    = $_FILES["photo"]["error"] ;   	//code de l'erreur si jamais il y en a une:

unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 100000;

//chemin qui mène au dossier qui va contenir les fichiers upload:
$chemin = "./images/" ;

 // vérifications
   if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
    {
$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
	}
	elseif( file_exists($_FILES['photo']['tmp_name'])
	and filesize($_FILES['photo']['tmp_name']) > $taille_max)
	{
$erreur = 'Votre fichier doit faire moins de 100Ko !';
	}

//l'upload ! 
if (! isset($erreur)) { 
$nomFichier = strtr($nomFichier,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ','AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
    move_uploaded_file($nomTemporaire, $chemin.$nomFichier); 
         } 
	 }