Problème Récupération de variable

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème Récupération de variable

par dunbar » 26 nov. 2006, 18:33

Salut

Donc en gros ma question est simplement pourquoi (quelle erreur je fais) je n'arrive pas à avoir le nom de mon fichier :?:

Merci

par dunbar » 25 nov. 2006, 21:00

Salut,

Je dois être aveugle parce que je n'y arrive pas.
Je récupére bien le chemin mais pour le nom rien à faire ?
Et voilà mon code après les modification que tu me conseil mais cela m'affiche toujours Array.
<?php
//===============================================================================
//
//  UPLOADE
//
//===============================================================================
$maxfiles       = 1;                          //Modification du nombre de Photo.
$maxsize        = 2000000;                    //Poid des Photos
$finaldir       = 'E:/wamp/www/xxxxxx/clients/images/'; //Chemin du repertoire
$nom            = array(1, 2, 3, 4);
//===============================================================================
//  TRAITEMENT DU FORMULAIRE
//===============================================================================
if(isset($_POST['valider'])){

//===============================================================================
//
//  ENREGISTREMENT DU CHEMIN ET NOM DANS LA TABLE IMAGE
//
//===============================================================================

include "../connect/connect.php";

//echo $sql = "INSERT INTO images (chem_pho_1, pho_1) values ('".$finaldir."','".$name."')";
//$insert = mysql_query($sql) or die (mysql_error());

echo $sql = "INSERT INTO images (chem_pho_1, pho_1) values ('".$finaldir."','".$nom."')";
$insert = mysql_query($sql) or die (mysql_error());

?>
 <pre>
<?php
var_dump($_FILES);
?>
</pre>
<?php
  //=============================================================================
  //  TEST DU NOMBRE DE FICHIERS POSTES
  //=============================================================================
  $nbr=0;
  for($x=0;$x<$maxfiles;$x++)
    if(!empty($_FILES['userfile']['name'][$x])) $nbr++;
  if($nbr<=0) die("Aucun fichier spécifié !<br/>");

  //=============================================================================
  //  CREATION DE L'ARBORESCENCE POUR LE DOSSIER DESTINATION
  //=============================================================================
  if(!empty($finaldir)) {
     if(substr($finaldir,strlen($finaldir)-1,1)=='/') $finaldir.='/';
     $dir=explode('/',$finaldir);
     $finaldir='';
     for($x=0;$x<count($dir);$x++) {
        $finaldir.=$dir[$x].'/';
        if(!@is_dir($finaldir)) @mkdir($finaldir,0777);
     }
     if(!@is_dir($finaldir)) die("Le dossier $finaldir est invalide !<br/>");
  }

  //=============================================================================
  //  TELECHARGEMENT DES FICHIERS
  //=============================================================================

  foreach($_FILES as $Key => $Value) {
    for($x=1;$x<=$maxfiles;$x++) {
    $errorhttp=$_FILES['userfile']['error'][$x-1];
    $filenamehttp=$_FILES['userfile']['name'][$x-1];
    $typehttp=$_FILES['userfile']['type'][$x-1];
    $sizehttp=$_FILES['userfile']['size'][$x-1];
    $tmpfilehttp=$_FILES['userfile']['tmp_name'][$x-1];
    if (($errorhttp)and(!empty($filenamehttp))) {
      switch ($errorhttp){
        case 1: echo "Erreur : Le fichier n°$x est trop grand !<br/>";break;
        case 2: echo "Erreur : Le fichier n°$x est trop grand !<br/>";break;
        case 3: echo "Erreur : Transfert du fichier n°$x interrompu !<br/>";break;
        case 4: echo "Erreur : Le fichier n°$x est vide !<br/>";break;
      }
    } else {
      if((!empty($filenamehttp))and($sizehttp>0)) {
        if($sizehttp<=$maxsize){
          if(@is_uploaded_file($tmpfilehttp)) {
             if(@eregi('.php',$filenamehttp)) $filenamehttp.='.txt';
             if(@eregi('.exe',$filenamehttp)) $filenamehttp.='.txt';
             if(@eregi('.swf',$filenamehttp)) $filenamehttp.='.txt';
             if(@eregi('.zip',$filenamehttp)) $filenamehttp.='.txt';
             if(filesize($tmpfilehttp)==$sizehttp) {
               if(@move_uploaded_file($tmpfilehttp,$finaldir.$filenamehttp)) {
                  @chmod($filenamehttp,0777);
                  echo "Fichier n°$x uploadé : ".basename($filenamehttp).
                       " (".round(max($sizehttp,1024)/1024)." ko)<br/>";
               } else echo "Erreur de téléchargement du fichier n°$x !<br/>";
             } else echo "Erreur de téléchargement du fichier n°$x !<br/>";
          } else echo "Erreur de téléchargement du fichier n°$x !<br/>";
        } else echo "Erreur : Le fichier n°$x est trop grand !<br/>";
      } // else echo "Le fichier n°$x est introuvable ou vide !<br/>";
    }
  }
 }
  die ("Opération terminée.<br/>");
}

//===============================================================================
//  FORMULAIRE HTML
//===============================================================================
echo '<form method="post" enctype="multipart/form-data"'.
     ' onSubmit="document.getElementById(\'valider\').style.visibility=\'hidden\';">'.
     '<input type="hidden" name="MAX_FILE_SIZE" value="'.$maxsize.'"/>';
for($x=1;$x<=max($maxfiles,1);$x++)
  echo ' Fichier n°'.$x.' : <input type="file" name="userfile[]" size="20"/><br/>';
echo '<br/><input type="submit" name="valider" value="Envoyer..."/>'.
     '</form>';


//===============================================================================



?>
Et mon Var_Dump

Code : Tout sélectionner

array(1) { ["userfile"]=> array(5) { ["name"]=> array(1) { [0]=> string(5) "6.gif" } ["type"]=> array(1) { [0]=> string(9) "image/gif" } ["tmp_name"]=> array(1) { [0]=> string(21) "E:/wamp/tmp\phpCD.tmp" } ["error"]=> array(1) { [0]=> int(0) } ["size"]=> array(1) { [0]=> int(2415) } } }
Quelqu'un remarque mon erreur ?

D'avance merci

par Ryle » 23 nov. 2006, 10:45

En fait, l'idéal serait de ne pas boucler de 1 à 3, mais du nombre de fichier contenu dans $_FILES (quitte à s'arrêter avec un break s'il y en a plus de 3). Comme ça s'il n'y en a qu'un tu n'en fais qu'un, s'il y en a deux tu n'en fais que 2 etc.

Pour voir le tableau un peu mieux présenté, utilise les tags <pre> quand tu fais le print_r :
echo '<pre>';
print_r($tableau);
echo '</pre>';
Le résultat sera plus clair et tu verras combien il y a de tableaux, de sous tableaux, d'éléments dedans, leurs index et leurs valeurs :

Code : Tout sélectionner

Array ( [userfile] => Array ( [name] => Array ( [0] => IMG_0042.jpg [1] => [2] => [3] => [4] => ) [type] => Array ( [0] => image/pjpeg [1] => [2] => [3] => [4] => ) [tmp_name] => Array ( [0] => E:/wamp/tmp\php2A8.tmp [1] => [2] => [3] => [4] => ) [error] => Array ( [0] => 0 [1] => 4 [2] => 4 [3] => 4 [4] => 4 ) [size] => Array ( [0] => 1551705 [1] => 0 [2] => 0 [3] => 0 [4] => 0 ) ) )
Tu vois ainsi qu'avec un foreach sur $_FILES['userfile'] tu verras tous les fichiers sous forme de tableau et tu pourras tester qu'ils ont bien été uploadé, récupérer les noms et les stocker en base, ainsi que déplacer le fichier pour le conserver sur le serveur :)

par dunbar » 23 nov. 2006, 10:15

Alors dans l'ordre :
Alors ma boucle fonction presque bien :oops:
for ($s=1;$s<=$maxfiles;$s++){
	if (($finaldir.$s != '')){
$sql = "INSERT INTO images (chem_pho_1, pho_1) values ('".$finaldir."','".$name."')";
$insert = mysql_query($sql) or die (mysql_error());
}
}
La variable $maxfiles est actuellement sur trois, j'ai donc la possibilité de télécharger trois fichiers mais 2 ou 1 éventuellement et comme ma boucle reprend la variable $maxfile elle inscrit trois enregistrement dans ma table et cela que je charge 1,2 ou 3 fichiers comment lui dire de ne prendre que le nombre de fichier réel :?:
En fait, dans ton code la valeur de $s va être 1, 2 ou 3 et ne sera donc jamais vide. Ainsi, si tu la concatène à la chaine $finaldir, même si cette derniere est vide, le résultat ne le sera pas et tu rentreras 3 fois dans le if pour exécuter la requête :)


Pour ton nom de fichier, utilise la fonction print_r() sur ton tableau voire sur $_FILES. Tu verras ainsi comment il est structuré (index et sous-tableaux), et tu comprendras surement pourquoi il te retourne un tableau (Array) au lieu de la valeur attendue :)
Concernant le nom du fichier je ne comprend vraiment pas il me retourne ceci comme erreur
Array ( [userfile] => Array ( [name] => Array ( [0] => IMG_0042.jpg [1] => [2] => [3] => [4] => ) [type] => Array ( [0] => image/pjpeg [1] => [2] => [3] => [4] => ) [tmp_name] => Array ( [0] => E:/wamp/tmp\php2A8.tmp [1] => [2] => [3] => [4] => ) [error] => Array ( [0] => 0 [1] => 4 [2] => 4 [3] => 4 [4] => 4 ) [size] => Array ( [0] => 1551705 [1] => 0 [2] => 0 [3] => 0 [4] => 0 ) ) ) Fichier n°1 uploadé : IMG_0042.jpg (1515 ko)
Opération terminée.
Quand à la boucle tu concatenerais avec quelle valeur si $filename est pas bonne ?
:?: Merci
Quelqu'un aurais t'il une idée ?

par dunbar » 22 nov. 2006, 19:42

Alors dans l'ordre :
Alors ma boucle fonction presque bien :oops:
for ($s=1;$s<=$maxfiles;$s++){
	if (($finaldir.$s != '')){
$sql = "INSERT INTO images (chem_pho_1, pho_1) values ('".$finaldir."','".$name."')";
$insert = mysql_query($sql) or die (mysql_error());
}
}
La variable $maxfiles est actuellement sur trois, j'ai donc la possibilité de télécharger trois fichiers mais 2 ou 1 éventuellement et comme ma boucle reprend la variable $maxfile elle inscrit trois enregistrement dans ma table et cela que je charge 1,2 ou 3 fichiers comment lui dire de ne prendre que le nombre de fichier réel :?:
En fait, dans ton code la valeur de $s va être 1, 2 ou 3 et ne sera donc jamais vide. Ainsi, si tu la concatène à la chaine $finaldir, même si cette derniere est vide, le résultat ne le sera pas et tu rentreras 3 fois dans le if pour exécuter la requête :)


Pour ton nom de fichier, utilise la fonction print_r() sur ton tableau voire sur $_FILES. Tu verras ainsi comment il est structuré (index et sous-tableaux), et tu comprendras surement pourquoi il te retourne un tableau (Array) au lieu de la valeur attendue :)
Concernant le nom du fichier je ne comprend vraiment pas il me retourne ceci comme erreur
Array ( [userfile] => Array ( [name] => Array ( [0] => IMG_0042.jpg [1] => [2] => [3] => [4] => ) [type] => Array ( [0] => image/pjpeg [1] => [2] => [3] => [4] => ) [tmp_name] => Array ( [0] => E:/wamp/tmp\php2A8.tmp [1] => [2] => [3] => [4] => ) [error] => Array ( [0] => 0 [1] => 4 [2] => 4 [3] => 4 [4] => 4 ) [size] => Array ( [0] => 1551705 [1] => 0 [2] => 0 [3] => 0 [4] => 0 ) ) ) Fichier n°1 uploadé : IMG_0042.jpg (1515 ko)
Opération terminée.
Quand à la boucle tu concatenerais avec quelle valeur si $filename est pas bonne ?
:?: Merci

par Ryle » 22 nov. 2006, 18:48

Alors dans l'ordre :
Alors ma boucle fonction presque bien :oops:
for ($s=1;$s<=$maxfiles;$s++){
	if (($finaldir.$s != '')){
$sql = "INSERT INTO images (chem_pho_1, pho_1) values ('".$finaldir."','".$name."')";
$insert = mysql_query($sql) or die (mysql_error());
}
}
La variable $maxfiles est actuellement sur trois, j'ai donc la possibilité de télécharger trois fichiers mais 2 ou 1 éventuellement et comme ma boucle reprend la variable $maxfile elle inscrit trois enregistrement dans ma table et cela que je charge 1,2 ou 3 fichiers comment lui dire de ne prendre que le nombre de fichier réel :?:
En fait, dans ton code la valeur de $s va être 1, 2 ou 3 et ne sera donc jamais vide. Ainsi, si tu la concatène à la chaine $finaldir, même si cette derniere est vide, le résultat ne le sera pas et tu rentreras 3 fois dans le if pour exécuter la requête :)


Pour ton nom de fichier, utilise la fonction print_r() sur ton tableau voire sur $_FILES. Tu verras ainsi comment il est structuré (index et sous-tableaux), et tu comprendras surement pourquoi il te retourne un tableau (Array) au lieu de la valeur attendue :)

Récupération de variable

par dunbar » 22 nov. 2006, 14:44

Pourquoi je n'arrive pas à récupérée le nom de mon fichier ???
Il m'indique array dans le champ nom de ma table ?
$maxfiles       = 3;                          //Modification du nombre de Photo.
$maxsize        = 2000000;                    //Poid des Photos
$finaldir       = 'E:/wamp/www/xxxx/clients/images/'; //Chemin du repertoire
$name           = $_FILE['userfile'][0];
//===============================================================================
//  TRAITEMENT DU FORMULAIRE
//===============================================================================
if(isset($_POST['valider'])){

//===============================================================================
//
//  ENREGISTREMENT DU CHEMIN ET NOM DANS LA TABLE IMAGE
//
//===============================================================================

include "../connect/connect.php";

$sql = "INSERT INTO images (chem_pho_1, pho_1) values ('".$finaldir."','".$name."')";
$insert = mysql_query($sql) or die (mysql_error());



  //=============================================================================
  //  TEST DU NOMBRE DE FICHIERS POSTES
  //=============================================================================
  $nbr=0;
  for($x=0;$x<$maxfiles;$x++)
    if(!empty($_FILES['userfile']['name'][$x])) $nbr++;
  if($nbr<=0) die("Aucun fichier spécifié !<br/>");

  //=============================================================================
  //  CREATION DE L'ARBORESCENCE POUR LE DOSSIER DESTINATION
  //=============================================================================
  if(!empty($finaldir)) {
     if(substr($finaldir,strlen($finaldir)-1,1)=='/') $finaldir.='/';
     $dir=explode('/',$finaldir);
     $finaldir='';
     for($x=0;$x<count($dir);$x++) {
        $finaldir.=$dir[$x].'/';
        if(!@is_dir($finaldir)) @mkdir($finaldir,0777);
     }
     if(!@is_dir($finaldir)) die("Le dossier $finaldir est invalide !<br/>");
  }

  //=============================================================================
  //  TELECHARGEMENT DES FICHIERS
  //=============================================================================
    for($x=1;$x<=$maxfiles;$x++) {
    $errorhttp=$_FILES['userfile']['error'][$x-1];
    $filenamehttp=$_FILES['userfile']['name'][$x-1];
    $typehttp=$_FILES['userfile']['type'][$x-1];
    $sizehttp=$_FILES['userfile']['size'][$x-1];
    $tmpfilehttp=$_FILES['userfile']['tmp_name'][$x-1];
    if (($errorhttp)and(!empty($filenamehttp))) {
      switch ($errorhttp){
        case 1: echo "Erreur : Le fichier n°$x est trop grand !<br/>";break;
        case 2: echo "Erreur : Le fichier n°$x est trop grand !<br/>";break;
        case 3: echo "Erreur : Transfert du fichier n°$x interrompu !<br/>";break;
        case 4: echo "Erreur : Le fichier n°$x est vide !<br/>";break;
      }
    } else {
      if((!empty($filenamehttp))and($sizehttp>0)) {
        if($sizehttp<=$maxsize){
          if(@is_uploaded_file($tmpfilehttp)) {
             if(@eregi('.php',$filenamehttp)) $filenamehttp.='.txt';
             if(@eregi('.exe',$filenamehttp)) $filenamehttp.='.txt';
             if(filesize($tmpfilehttp)==$sizehttp) {
               if(@move_uploaded_file($tmpfilehttp,$finaldir.$filenamehttp)) {
                  @chmod($filenamehttp,0777);
                  echo "Fichier n°$x uploadé : ".basename($filenamehttp).
                       " (".round(max($sizehttp,1024)/1024)." ko)<br/>";
               } else echo "Erreur de téléchargement du fichier n°$x !<br/>";
             } else echo "Erreur de téléchargement du fichier n°$x !<br/>";
          } else echo "Erreur de téléchargement du fichier n°$x !<br/>";
        } else echo "Erreur : Le fichier n°$x est trop grand !<br/>";
      } // else echo "Le fichier n°$x est introuvable ou vide !<br/>";
    }
  }

  die ("Opération terminée.<br/>");
}

//===============================================================================
//  FORMULAIRE HTML
//===============================================================================
echo '<form method="post" enctype="multipart/form-data"'.
     ' onSubmit="document.getElementById(\'valider\').style.visibility=\'hidden\';">'.
     '<input type="hidden" name="MAX_FILE_SIZE" value="'.$maxsize.'"/>';
for($x=1;$x<=max($maxfiles,1);$x++)
  echo ' Fichier n°'.$x.' : <input type="file" name="userfile[]" size="20"/><br/>';
echo '<br/><input type="submit" name="valider" value="Envoyer..."/>'.
     '</form>';


//===============================================================================



?>
:oops: Merci d'avance

par dunbar » 22 nov. 2006, 13:27

Il ne manquerait pas des accolades à ton premier for() ? Sans elles, c'est la première instruction uniquement qui sera exécutée, et il va boucler sur le $sql = "...";

Méfies toi ensuite, si tu imbriques tes deux for(), change le nom de la variable $x pour le second, sinon il te l'incrémentera et ta valeur sera faussée dans le premier :)

Edit : Damn ! c'était bien la peine que ducrot il se décarcasse ;)
Sorry, et merci pour ma 2 boucle :wink:

A+
Alors ma boucle fonction presque bien :oops:
for ($s=1;$s<=$maxfiles;$s++){
	if (($finaldir.$s != '')){
$sql = "INSERT INTO images (chem_pho_1, pho_1) values ('".$finaldir."','".$name."')";
$insert = mysql_query($sql) or die (mysql_error());
}
}
La variable $maxfiles est actuellement sur trois, j'ai donc la possibilité de télécharger trois fichiers mais 2 ou 1 éventuellement et comme ma boucle reprend la variable $maxfile elle inscrit trois enregistrement dans ma table et cela que je charge 1,2 ou 3 fichiers comment lui dire de ne prendre que le nombre de fichier réel :?:

Merci d'avance

par Ryle » 22 nov. 2006, 13:11

Bah ce n'est pas utile de le modifier du coup, puisque le 2ème for() n'est pas imbriqué dans le premier :)
C'était ton indentation qui le laissait présumer, et comme je ne savais pas où tu allais fermer ta boucle .. :)

par dunbar » 22 nov. 2006, 12:49

Il ne manquerait pas des accolades à ton premier for() ? Sans elles, c'est la première instruction uniquement qui sera exécutée, et il va boucler sur le $sql = "...";

Méfies toi ensuite, si tu imbriques tes deux for(), change le nom de la variable $x pour le second, sinon il te l'incrémentera et ta valeur sera faussée dans le premier :)

Edit : Damn ! c'était bien la peine que ducrot il se décarcasse ;)
Sorry, et merci pour ma 2 boucle :wink:

A+

par Ryle » 22 nov. 2006, 12:43

Il ne manquerait pas des accolades à ton premier for() ? Sans elles, c'est la première instruction uniquement qui sera exécutée, et il va boucler sur le $sql = "...";

Méfies toi ensuite, si tu imbriques tes deux for(), change le nom de la variable $x pour le second, sinon il te l'incrémentera et ta valeur sera faussée dans le premier :)

Edit : Damn ! c'était bien la peine que ducrot il se décarcasse ;)

par dunbar » 22 nov. 2006, 12:41

Faudrait nous donner l'erreur que ton script affiche :wink:
Ok sorry j'avais oublier les {}
ici
for ($x=1;$x<=$maxfiles;$x++){
$sql = "INSERT INTO images (chem_pho_1, pho_1) values ('".$finaldir."','".$name."')";
$insert = mysql_query($sql) or die (mysql_error());
}
Merci

par DocType » 22 nov. 2006, 12:37

Faudrait nous donner l'erreur que ton script affiche :wink:

Problème Récupération de variable

par dunbar » 22 nov. 2006, 12:33

Bonjour,

J'essaye de faire une boucle pour un INSERT mais je me plante quelque part et je ne trouve pas ou ?
L'erreur est qu'il ne prend qu'un seul enregistrement et pas les 3
for ($x=1;$x<=$maxfiles;$x++)
$sql = "INSERT INTO images (chem_pho_1, pho_1) values ('".$finaldir."','".$name."')";
$insert = mysql_query($sql) or die (mysql_error());

  //=============================================================================
  //  TEST DU NOMBRE DE FICHIERS POSTES
  //=============================================================================
  $nbr=0;
  for($x=0;$x<$maxfiles;$x++)
    if(!empty($_FILES['userfile']['name'][$x])) $nbr++;
  if($nbr<=0) die("Aucun fichier spécifié !<br/>");

  //=============================================================================
  //  CREATION DE L'ARBORESCENCE POUR LE DOSSIER DESTINATION
  //=============================================================================
  if(!empty($finaldir)) {
     if(substr($finaldir,strlen($finaldir)-1,1)=='/') $finaldir.='/';
     $dir=explode('/',$finaldir);
     $finaldir='';
     for($x=0;$x<count($dir);$x++) {
        $finaldir.=$dir[$x].'/';
        if(!@is_dir($finaldir)) @mkdir($finaldir,0777);
     }
     if(!@is_dir($finaldir)) die("Le dossier $finaldir est invalide !<br/>");
  }

  //=============================================================================
  //  TELECHARGEMENT DES FICHIERS
  //=============================================================================
  for($x=1;$x<=$maxfiles;$x++) {
    $errorhttp=$_FILES['userfile']['error'][$x-1];
    $filenamehttp=$_FILES['userfile']['name'][$x-1];
    $typehttp=$_FILES['userfile']['type'][$x-1];
    $sizehttp=$_FILES['userfile']['size'][$x-1];
    $tmpfilehttp=$_FILES['userfile']['tmp_name'][$x-1];
    if (($errorhttp)and(!empty($filenamehttp))) {
      switch ($errorhttp){
        case 1: echo "Erreur : Le fichier n°$x est trop grand !<br/>";break;
        case 2: echo "Erreur : Le fichier n°$x est trop grand !<br/>";break;
        case 3: echo "Erreur : Transfert du fichier n°$x interrompu !<br/>";break;
        case 4: echo "Erreur : Le fichier n°$x est vide !<br/>";break;
      }
    } else {
      if((!empty($filenamehttp))and($sizehttp>0)) {
        if($sizehttp<=$maxsize){
          if(@is_uploaded_file($tmpfilehttp)) {
             if(@eregi('.php',$filenamehttp)) $filenamehttp.='.txt';
             if(@eregi('.exe',$filenamehttp)) $filenamehttp.='.txt';
             if(filesize($tmpfilehttp)==$sizehttp) {
               if(@move_uploaded_file($tmpfilehttp,$finaldir.$filenamehttp)) {
                  @chmod($filenamehttp,0777);
                  echo "Fichier n°$x uploadé : ".basename($filenamehttp).
                       " (".round(max($sizehttp,1024)/1024)." ko)<br/>";
               } else echo "Erreur de téléchargement du fichier n°$x !<br/>";
             } else echo "Erreur de téléchargement du fichier n°$x !<br/>";
          } else echo "Erreur de téléchargement du fichier n°$x !<br/>";
        } else echo "Erreur : Le fichier n°$x est trop grand !<br/>";
      } // else echo "Le fichier n°$x est introuvable ou vide !<br/>";
    }
  }

  die ("Opération terminée.<br/>");
}
Quelqu'un voie t'il l'erreur :?:
D'avance merci :wink: