Creer un menu deroulant en passant par un fichier CSV

Creer un menu deroulant en passant par un fichier CSV - PHP - Programmation

Marsh Posté le 18-05-2009 à 11:32:15    

Bonjour,
 
Je souhaiterais creer un menu déroulant qui utilise des informations qui sont stocker dans un fichier .csv. Ceci en php.
 
Quelqu'un aurait une idée de script ?

Reply

Marsh Posté le 18-05-2009 à 11:32:15   

Reply

Marsh Posté le 18-05-2009 à 13:56:24    

ben  
tu as plusieurs étapes
1 etape
selection de ton csv
donc un input de type file
 
2 etape,  
tu valide ton formulaire, et tu lit le contenu de ton csv que tu met dans un tableau

Code :
  1. //voici un exemple de lecture d'un fichier csv qui retourne le tout dans une tableau
  2. function read_csv( $filename, $separateur)      // transfert le fichier dans un tableau
  3. {
  4. if ( $FILE=fopen($filename,"r" ) )               // ouverture du fichier
  5. {
  6.   while ($ARRAY[]=fgetcsv($FILE,1024,$separateur));      // lire ligne par ligne et coupe colonne par colonne
  7.   fclose($FILE) ;                              // ferme le fichier
  8.   array_pop($ARRAY);                                    // efface la derniere ligne
  9.   return $ARRAY;                              // renvoie le tableau
  10. }else{ /* le fichier n'existe pas */
  11.        echo "Fichier introuvable !<br>Importation stoppée.";
  12.        exit();
  13.   }
  14. }


 
3 etape
tu parcours le tableau et tu le met dans un select
 

Reply

Marsh Posté le 18-05-2009 à 14:32:42    

<?php
 
  <input type='file' name='Produits'>  
    //voici un exemple de lecture d'un fichier csv qui retourne le tout dans une tableau
   function read_csv($Produits)      // transfert le fichier dans un tableau
    {
    if ( $FILE=fopen($Produits,"r" ) )               // ouverture du fichier
    {
      while ($ARRAY[]=fgetcsv($FILE,1024,";" ));      // lire ligne par ligne et coupe colonne par colonne
     fclose($FILE) ;                              // ferme le fichier
      array_pop($ARRAY);                                    // efface la derniere ligne
      return $ARRAY;                              // renvoie le tableau
   }else{ /* le fichier n'existe pas */
          echo "Fichier introuvable !<br>Importation stoppée.";
          exit();
    }
    }
    ?>
 
J'doit avoir pb de selection du fichier déja...

Reply

Marsh Posté le 18-05-2009 à 14:46:08    

euh une question c'est exactement ton code?
car la il te manque le formulaire,<form >....< /form>
le traitement php pour traiter ton formulaire POST


Message édité par infoman64 le 18-05-2009 à 14:54:18
Reply

Marsh Posté le 18-05-2009 à 16:14:26    

Après modification intense :D de mon code lol, j'ai réussi a mettre mes 2 menu déroulant... sauf qu'il ne sont pas lier...
 
Si tu as une idée pour les lier :p

Code :
  1. <?php
  2. session_start();
  3. ?>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  5. <html>
  6. <!-- famille -->
  7. <select>
  8. <?php
  9. $cat=array();
  10. $fichier="Produits.csv";
  11. $var=fopen("$fichier","r+" );
  12. while( !feof($var))
  13. {
  14.  $ligne=fgets($var);
  15.  $partie=explode(";",$ligne);
  16.  $famille=$partie[0];
  17.  if (!isset($_SESSION[$famille]))
  18.  {
  19.  echo "<OPTION VALUE='ingenieur'>".$famille."</OPTION>";
  20.  echo $famille."<br/>";
  21.  $_SESSION[$famille]="aa";
  22.  }
  23. }
  24. ?>
  25. </select>
  26.   <!-- fin famille -->
  27.  
  28.  
  29.  
  30.  
  31.  
  32. <!-- ss-famille -->
  33. <select>
  34. <?php
  35. $cat=array();
  36. $fichier="Produits.csv";
  37. $var=fopen("$fichier","r+" );
  38. while( !feof($var))
  39. {
  40.  $ligne=fgets($var);
  41.  $partie=explode(";",$ligne);
  42.  $famille=$partie[1];
  43.  if (!isset($_SESSION[$famille]))
  44.  {
  45.  echo "<OPTION VALUE='ingenieur'>".$famille."</OPTION>";
  46.  echo $famille."<br/>";
  47.  $_SESSION[$famille]="aa";
  48.  }
  49. }
  50. ?>
  51. </select>
  52.   <!-- fin ss-famille --> 
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61. <?php
  62. session_destroy();
  63. ?>
  64. </html>


Message édité par maktu le 18-05-2009 à 16:42:17
Reply

Marsh Posté le 18-05-2009 à 16:20:48    

comment ca liée?
et
tes select ne vont pas te servir a grand chose, pour l'instant, a part l'affichage, car toutes les options ont la même valeur.

Reply

Marsh Posté le 18-05-2009 à 16:26:04    

Oui je sais parce que la le code est vrement pour des menu individuel.
Ben lorsque je choisi une valeur dans le premier menu, il n'y a que des valeurs qui lui correspondent dans le second menu.
 
ex :  
 
- Audio => - Haut parleurs
               - Microphone

Reply

Marsh Posté le 18-05-2009 à 16:34:27    

premièrement mets ton code entre les balises [cpp] et [ /cpp]
ensuite j'ai compris que tu veut afficher dans la seconde liste les informations en fonction de ce qui a ete dans la premiere.
Mais  
le premier souci, est que déja la valeur de ton premier select sera toujours la meme ("ingénieur" ) donc lorsque tu recupera la valeur de cette liste pour mettre la seconde a jour, ca sera toujours en fonction de ingenieur
 
et ensuite, ta seconde liste, disons que j'ai audio comme tu dit,  
comment sont structuré tes infos pour choisir les informations qui concerne l'audio?


Message édité par infoman64 le 18-05-2009 à 16:35:32
Reply

Marsh Posté le 18-05-2009 à 16:45:34    

de la même façon que la première liste deroulante, sauf qu'elle ne contient que les 2 attribut cité plus haut.
 
Ces attribut sont présent dans le fichier .csv .
 
La valeur "ingénieur" change lorqu'elle est selctionner.

Reply

Marsh Posté le 18-05-2009 à 16:52:00    

maktu a écrit :


La valeur "ingénieur" change lorqu'elle est selctionner.


Hein?? :heink:  :heink:  
 
puis  pour continuer tes select n'ont aucun nom
<select name="nomselect" id="nomselect" >
 
ensuite
ton fichier
tu as apparament deux colonnes A les Familles et B les sous familles
si tu sélectionne une valeur de la colonne A , comment sait tu quels sont les valeurs B a sélectionner
 
montre un extrait de ton fichier.
 
Je crois qu'il te manque beaucoup de notions.

Reply

Marsh Posté le 18-05-2009 à 16:52:00   

Reply

Marsh Posté le 18-05-2009 à 17:16:07    

"AUDIO";"Haut-Parleur";"SONY";"Non disponible";"SONY SRS-D511";"111808";74,75;0,42;19,6;89,9;8,62;"Système de haut-parleurs 5.1 home cinéma pour PC multimédia - 5 x Haut-parleur satellite 5 Watt + 1 x caisson de basses 25 Watt "
"AUDIO";"Haut-Parleur";"TRUST";"Disponible";"TRUST SP-6200 - 5.1 Surround Speaker Set";"560084";24,5;0;19,6;29,3;5;"Ensemble d'enceintes surround avec canaux 5.1 pour DVD amélioré ou audio de jeu (5x 3 Watt t 1x 6 Watt RMS)"
"AUDIO";"Lecteur MP3-MP4";"EPSON";"Non disponible";"EPSON P-2000";"530427";384,07;0,03;19,6;459,38;0,92;"Lecteur AV numérique - DD 40 Go - 3.8"" - Formats de lecture vidéo : MPEG-4, Motion JPEG"
"AUDIO";"Lecteur MP3-MP4";"MARQUES DIVERSES";"Disponible";"Lecteur MP3/MP4  R-965";"551003";40,5;0;19,6;48,44;0,6;"Baladeur MP3 et MP4  - Tuner FM - 512 Mo - Dictaphone - Ecran LCD 65000 couleurs - Equaliser mode - USB 2.0"

Reply

Marsh Posté le 18-05-2009 à 17:17:13    

ça t'aide plus ? oui je nommerais les select tkt pas ^^

Reply

Marsh Posté le 18-05-2009 à 17:45:26    

ah d'accord
excuse moi, alors, mais je pensait que tu comprenais pas tous, mais c'est pas le cas,  
donc  
déja apres import de ton fichier, je mettrai tous le fichier dans un tableau stocké en session.
Ensuite,  
donc pour la premiere liste, pas de probleme, sauf faudrai que tu rajoute l'option onchange() et la tu fait valider ton formulaire,  
des que ton formulaire sera validé
tu recupere la valeur de la liste
$valeurfamille=$_POST["nomselect1"]
 
et ensuite dans la boucle du deuxieme select tu fait un test
if($tab[0]==$valeurfamille) // si le test est correct tu met la valeur selectionné dans le select


Message édité par infoman64 le 18-05-2009 à 17:45:42
Reply

Marsh Posté le 18-05-2009 à 17:52:58    

D'accord je vais essayer. Je me déconnecte pour ce soir.
 
Je posterais le résultat demain. Merci beaucoup. Bonne soirée.

Reply

Marsh Posté le 19-05-2009 à 10:28:51    

Code :
  1. <?php
  2. session_start();
  3. ?>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  5. <html>
  6. <head>
  7. <script type="text/javascript">
  8. </script>
  9. </head>
  10. <body>
  11. <form  name="form1" method="post" action="">
  12.  <fieldset style="width: 800px">
  13.   <legend>Liste liées</legend>
  14. <label>Famille</label>
  15. <select name='Famille' id='idFamille' onchange="document.getElementById('button1').disabled=false;" >
  16.   <option>--Choix --</option>
  17. <?php
  18. $cat=array();
  19. $fichier="Produits.csv";
  20. $var=fopen("$fichier","r+" );
  21. while( !feof($var))
  22. {
  23.  $ligne=fgets($var);
  24.  $partie=explode(";",$ligne);
  25.  $famille=$partie[0];
  26.  if (!isset($_SESSION[$famille]))
  27.  {
  28.  echo "<OPTION VALUE='famille'>".$famille."</OPTION>";
  29.  echo $famille."<br/>";
  30.  $_SESSION[$famille]="aa";
  31.  }
  32. }
  33. ?>
  34. </SELECT>
  35. <?php
  36. $Vfamille=$_POST["Famille"]
  37. ?>
  38. <input type="submit" name="button1" id="button1" value="OK" disabled>
  39.   <label>Sous Famille</label>
  40.   <select name="Type" onChange=>
  41.   <option>--Choix--</option>
  42. <?php
  43. $cat=array();
  44. $fichier="Produits.csv";
  45. $var=fopen("$fichier","r+" );
  46. while( !feof($var))
  47. {
  48.  $ligne=fgets($var);
  49.  $partie=explode(";",$ligne);
  50.  $famille=$partie[0];
  51.  if (!isset($_SESSION[$famille]))
  52.  {
  53.  echo "<OPTION VALUE='famille'>".$famille."</OPTION>";
  54.  echo $famille."<br/>";
  55.  $_SESSION[$famille]="aa";
  56.  }
  57. }
  58. ?>
  59. </SELECT>
  60. </Form>
  61. <?php
  62. session_destroy();
  63. ?>
  64. </body>
  65. </html>


 
Je ne pense pas l'avoir mise au bon endroit pour récupérer la valeur.
Où met tu les 2nd If dans la 2nd boucle ?

Reply

Marsh Posté le 19-05-2009 à 10:51:31    

Ouf, c'est bien tu as pas mal avancé
1 remarque:
encore les valeurs de tes options
pour le premier  select il faut que tu fasse par exemple

Code :
  1. <option value='$famille' >$famille </option> //attention aux caratere speciaux


 
ensuite je comprends pas ton test sur les sessions, en faite tu as pas besoin de session car tu as ton fichier en local,
tu l'ouvre a chaque chargement c'est pas trés propre,  
apres tu peut améliorer.
Tu as pas besoins de ouvrir deux foix ton fichier, une fois que tu l'as ouverts et que tu as récuperer le tableau c'est bon , tu peut t'en servir partout dans la page.
 
et ta variable session['famille']='aa' ,je sais pas trop a quoi elle sert
enfin bref, voila
le code un peu corrigé
 

Code :
  1. <?php
  2. session_start();
  3. ?>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  5. <html>
  6. <head>
  7. <script type="text/javascript">
  8. </script>
  9. </head>
  10. <body>
  11. <form  name="form1" method="post" action="">
  12. <fieldset style="width: 800px">
  13.   <legend>Liste liées</legend>
  14. <label>Famille</label>
  15. <select name='Famille' id='idFamille' onchange="document.getElementById('button1').disabled=false;" >
  16.   <option>--Choix --</option>
  17. <?php
  18. $cat=array();
  19. $fichier="Produits.csv";
  20. $var=fopen("$fichier","r+" );
  21. while( !feof($var))
  22. {
  23.          $ligne=fgets($var);
  24.           $partie=explode(";",$ligne);
  25.           $famille=$partie[0];
  26.           if ($famille!="" ) // par contre la c'est intelligent de pas mettre de valeur nul
  27.           {
  28.           echo "<OPTION VALUE='$famille'>".$famille."</OPTION>";
  29.           }
  30. }
  31. ?>
  32. </SELECT>
  33. <input type="submit" name="button1" id="button1" value="OK" disabled>
  34. <?php
  35. if(isset($_POST["Famille"])){// comme ca, cela ne s'affiche que si tu as sélectionné que la famille.
  36.          $Vfamille=$_POST["Famille"]// le isset au dessus evitera que t'es une erreur si le post "famille" n'existe pas
  37. ?>
  38.        
  39.            <label>Sous Famille</label>
  40.            <select name="Type" >
  41.            <option>--Choix--</option>
  42.          <?php
  43.          $cat=array();
  44.          $fichier="Produits.csv";
  45.          $var=fopen("$fichier","r+" );
  46.          while( !feof($var))
  47.          {
  48.           $ligne=fgets($var);
  49.           $partie=explode(";",$ligne);
  50.           $famille=$partie[0];//nom de la famille
  51.          $sousfamille=$partie[1];//sous famille
  52.           if ($Vfamille==$famille)//si valeur de la famille selectionne egal famille de la ligne selectionne alors on affiche la sous famille
  53.           {
  54.           echo "<OPTION VALUE=' $sousfamille'>". $sousfamille."</OPTION>";
  55.             }
  56. }
  57. ?>
  58. </SELECT>
  59. </Form>
  60. <?php
  61. }
  62. session_destroy();
  63. ?>
  64. </body>
  65. </html>
  66. //il doit certainement avoir des erreurs de syntaxes dans le code que je t'es donne , je l'est pas teste.


 
donc tu peut optimiser la lecture du fichier,eviter qu'elle soit fait plusieurs fois,
ensuite faite attention aux caractères spéciaux dans la liste utilise htmlspecialchars, ca resoudra les problemes.

Reply

Marsh Posté le 19-05-2009 à 11:18:04    

J'ai juste tester ton code sans le modifier.
J'obtient qu'une seule liste des Familles.
Et il y a des doublons. "Audio" apparait autant de fois qu'il est présent dans le fichier Csv.  
La Sous Famille n'apparait pas.

Reply

Marsh Posté le 19-05-2009 à 15:05:35    

pour les doublons a toi de faire les vérifications
 
et la sous famille n'arraparait que si tu as choisis une famille et que tu appuye sur OK

Reply

Marsh Posté le 19-05-2009 à 15:57:54    

Merci infoman, cela marche.  
Il me reste a chasser les doublon =)
 
Ce Principe marcherai pour une 3ème ( et dernière :D ) liste ?

Reply

Marsh Posté le 19-05-2009 à 16:01:13    

ouais biensur, pour autant de liste que tu veut
apres, si tu as en beaucoup plus, je pense que tu peut largement optimiser
deja en utilisant une fonction, car c'est toujours le meme code qui sera appele, a part pour l'index de la colonne et les valeurs comparées
ensuite au lieu a chaque fois d'ouvrir le fichier, tu l'ouvre une fois et tu le met dans un tableau, que tu appele a chaque fois que tu en as besoin
 
Voila.

Reply

Marsh Posté le 19-05-2009 à 16:13:22    

Merci j'y suis arriver, j'ai juste combiné ta solution et la mienne avec un && :D

Reply

Marsh Posté le 19-05-2009 à 16:20:03    

Une dernière chose. Saurais-tu juste changer le onChange de façon ne pas passer par le bouton ?  
mais toujour en ayant les liste lier...
Je ne suis pas pointilleux, mais je fait ce site pour une personne. Et le bouton ne l'emballe pas.

Reply

Marsh Posté le 19-05-2009 à 16:22:44    

onchange="document.form1.submit();" //ton formulaire va se valider automatiquement des que tu auras fait le changement


Message édité par infoman64 le 19-05-2009 à 16:22:53
Reply

Marsh Posté le 19-05-2009 à 16:24:25    

Merci :D

Reply

Marsh Posté le 19-05-2009 à 16:40:10    

la 3 ème liste est lier a la 1 et nn a la seconde ... c'est mon dernier soucis lol

Reply

Marsh Posté le 19-05-2009 à 16:59:57    

il te faut recuperer le post du 2 select
et tester la valeur avec la 3 colonne

Reply

Marsh Posté le 19-05-2009 à 17:04:42    

oui c'est ce que j'ai fait mais j'ai un message d'erreur. Il me le prend pas en compte. Tu veut le code ?

Reply

Marsh Posté le 19-05-2009 à 17:09:21    

Code :
  1. <?php
  2. session_start();
  3. ?>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  5. <html>
  6. <head>
  7. <script type="text/javascript">
  8. </script>
  9. </head>
  10. <body>
  11. <form  name="form1" method="post" action="">
  12. <fieldset style="width: 1000px">
  13.   <legend>Liste liées</legend>
  14.  
  15. <label>Famille</label>
  16. <select name='Famille' id='idFamille' onchange="document.form1.submit();" >
  17.   <option>--Choix --</option>
  18. <?php
  19. $cat=array();
  20. $fichier="Produits.csv";
  21. $var=fopen("$fichier","r+" );
  22. while( !feof($var))
  23. {
  24.          $ligne=fgets($var);
  25.           $partie=explode(";",$ligne);
  26.           $famille=$partie[0];
  27.          
  28.           if (($famille!="" )&&(!isset($_SESSION[$famille]))) // par contre la c'est intelligent de pas mettre de valeur nul
  29.           {
  30.           echo "<OPTION VALUE='$famille'>".$famille."</OPTION>";
  31.           echo $famille."<br/>";
  32.  $_SESSION[$famille]="aa";
  33.           }
  34. }
  35. ?>
  36. </SELECT>
  37. <?php
  38. if(isset($_POST["Famille"])){// comme ca, cela ne s'affiche que si tu as sélectionné que la famille.
  39.          $Vfamille=$_POST["Famille"]// le isset au dessus evitera que t'es une erreur si le post "famille" n'existe pas
  40. ?>
  41.        
  42.            <label>Sous Famille</label>
  43.            <select name='SousFamille'>
  44.            <option>--Choix--</option>
  45.          <?php
  46.          $cat=array();
  47.          $fichier="Produits.csv";
  48.          $var=fopen("$fichier","r+" );
  49.          while( !feof($var))
  50.          {
  51.           $ligne=fgets($var);
  52.           $partie=explode(";",$ligne);
  53.           $famille=$partie[0];//nom de la famille
  54.          $sousfamille=$partie[1];//sous famille
  55.           if (($Vfamille==$famille)&&(!isset($_SESSION[$sousfamille]))) //si valeur de la famille selectionne egal famille de la ligne selectionne alors on affiche la sous famille
  56.           {
  57.           echo "<OPTION VALUE=' $sousfamille'>". $sousfamille."</OPTION>";
  58.           echo $famille."<br/>";
  59.  $_SESSION[$sousfamille]="aa";
  60.             }
  61. }
  62. ?>
  63. </SELECT>
  64. <?php
  65. if(isset($_POST["SousFamille"])){// comme ca, cela ne s'affiche que si tu as sélectionné que la famille.
  66.          $VSfamille=$_POST["SousFamille"]// le isset au dessus evitera que t'es une erreur si le post "famille" n'existe pas
  67. ?>
  68.        
  69.            <label>Marque</label>
  70.            <select name="Marque" >
  71.            <option>--Choix--</option>
  72.          <?php
  73.          $cat=array();
  74.          $fichier="Produits.csv";
  75.          $var=fopen("$fichier","r+" );
  76.          while( !feof($var))
  77.          {
  78.           $ligne=fgets($var);
  79.           $partie=explode(";",$ligne);
  80.           $famille=$partie[0];// famille
  81.          $sousfamille=$partie[1];//sous famille
  82.          $marque=$partie[2];//marque
  83.           if (($VSfamille==$sousfamille)&&(!isset($_SESSION[$marque]))) //si valeur de la sousfamille selectionne egal sousfamille de la ligne selectionne alors on affiche la marque
  84.           {
  85.           echo "<OPTION VALUE=' $marque'>". $marque."</OPTION>";
  86.           echo $sousfamille."<br/>";
  87.  $_SESSION[$marque]="aaa";
  88.             }
  89. }
  90. ?>
  91. </SELECT>
  92. </Form>
  93. <?php
  94. }
  95. session_destroy();
  96. ?>
  97. </body>
  98. </html>

Reply

Marsh Posté le 19-05-2009 à 17:26:21    

c'est quoi le message d'erreur qu'il te marque
 
#  echo "<OPTION VALUE='$famille'>".$famille."</OPTION>";
#           echo $famille."<br/>";//cette ligne ne sert a rien ici, elle se retrouve au milieu de ton select

Reply

Marsh Posté le 19-05-2009 à 17:33:23    


Parse error: parse error in D:\wamp\www\Stage\test7.php on line 105
 c la ligne où il y a la balsie </html> et si je ne met pas le  
# <?php
# if(isset($_POST["SousFamille"])){// comme ca, cela ne s'affiche que si tu as sélectionné que la famille.
#
#
#          $VSfamille=$_POST["SousFamille"]// le isset au dessus evitera que t'es une erreur si le post "famille" n'existe pas
# ?>
cette erreur ne se met pas

Reply

Marsh Posté le 20-05-2009 à 09:15:33    

ton code c'est celui juste dessus,
si c'est pas la cas, copie ton code telle quelle pour que j'ai les numéro de lignes.

Reply

Marsh Posté le 20-05-2009 à 11:10:04    

si c'est bien celui au dessus.

Reply

Marsh Posté le 20-05-2009 à 11:21:47    

avant le  
if(isset($_POST["SousFamille"])){
il te manque une accolade fermande }

Reply

Marsh Posté le 20-05-2009 à 11:27:42    

L'erreur n'y ai plus... mais le menu Marque ne fonctionne toujours pas , il n'est pas relier au menu SousFamille

Reply

Marsh Posté le 20-05-2009 à 11:36:37    

normal  
$_SESSION[$marque] n'est jamais initialise,
il faut que tu le mette dans la seconde liste

Reply

Marsh Posté le 20-05-2009 à 11:47:01    

j'ai essayer mais sa ne change rien. Je ne l'ai p-e pas mit au bon endroit.  
 
$_SESSION[$sousfamille] n'était pas initialiser non plus dans ce cas.
 

Reply

Marsh Posté le 20-05-2009 à 13:43:48    

je sais pas a quoi te serve tes sessions, mais la elles ont aucune utilité
surtout que a la fin,  tu les détruits, les sessions on s'en sert pour garder des variables en mémoire entre différents chargement de page,
 
si ca reste sur ta page autant utilisé, une variable
 
et apres normal que la troisieme liste ne s'affiche pas il te manque le onchange sur la second liste

Reply

Marsh Posté le 20-05-2009 à 14:12:24    

Pour le OnChange, j'ai fait quelques teste. Je recherche encore quel est le bon.

Reply

Marsh Posté le 20-05-2009 à 14:26:04    

tu as une idée ?

Reply

Marsh Posté le 20-05-2009 à 14:27:47    

ben tu met le meme onchange que pour le premier

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed