IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Discussion :

Interfaçage Flash / PHP : upload de fichiers


Sujet :

Flash

  1. #1
    Membre confirmé Avatar de Sarrus
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2005
    Messages : 180
    Par défaut Interfaçage Flash / PHP : upload de fichiers
    Bonjour, j'ai bien lu http://stephaneey.developpez.com/tut...shmx/flashphp/

    et je voudrais que vous me disiez ce que vous pensez de mon mode de fonctionnement.

    1. Ce que je veux faire

    J'ai un petit module flash permettant l'upload de fichiers (merci Sub0)

    Je voudrais qu'il télécharge les fichiers dans un dossier créé à la volée prenant en compte un UserId (transmis par une variable en lien genre page.php?userid=n)

    je voudrais un bouton "terminer" qui envoie vers une page d'upload avec en parametre le nom du dossier créé.

    2. Voici mes idées :

    Dans le .fla :

    déclarer un objet de communication :
    phpCom = new LoadVars();


    interface php->flash

    - envoyer l'userid (transmis de la sorte : gerer.php?userId=n)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    phpCom.sendAndLoad("gerer.php",phpCom,"POST");
    - utilisation de l'userid :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    phpCom.userId (à concatener dans le nom de dossier)
    -> quelle est la commande pour concatener en flash ?
    -> Comment créer un dossier par ftp en flash ?

    interface flash->php

    - transmettre le nom du dossier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    phpCom.directory=(nom du dossier)
     
    phpCom.sendAndLoad("upload.php",phpCom,"POST");
    (ce send and load est à mettre dans le "on click" d'un bouton "Terminer")


    Dans le upload.php :

    traitement classique en utilisant $_POST[]

    ->est-ce que j'aurai encore UserId dans le POST ?



    Voilà, à vos claviers les flashouilleurs !

    Merci d'avance

    (NB : je connais encore moins le flash que la pelote venezuelienne)

  2. #2
    Membre confirmé Avatar de Sarrus
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2005
    Messages : 180
    Par défaut
    Je viens de lire quelque part qu'il fallait un objet d'envoi et un de réception

    est-ce obligé ?

  3. #3
    Membre Expert Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Par défaut
    non, à priori le même peut faire les deux...

  4. #4
    Membre confirmé Avatar de Sarrus
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2005
    Messages : 180
    Par défaut
    merci, et sinon pour ma conception du truc j'ai bon ? il me manque des choses à savoir ?

  5. #5
    Membre Expert Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Par défaut
    coté php je suis pas super compétent

  6. #6
    Membre confirmé Avatar de Sarrus
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2005
    Messages : 180
    Par défaut
    Ben c'est pas du php, c'est du flash

  7. #7
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Bonjour!

    Pour les membres du forum Flash :
    Voici l'archive contenant les scripts. Ce zip contient :
    • Le code Flash; La source, c'est le fichier FLA, les fichiers SWF sont les animations à intégrer au site
    • Le code PHP pour faire de l'upload de petits fichiers (taille limitée par le serveur)
    • Le code Perl pour l'upload de gros fichier. Script à installer dans le dossier cgi-bin d'apache

    Citation Envoyé par la_unge
    merci, et sinon pour ma conception du truc j'ai bon ? il me manque des choses à savoir ?
    Ce qu'il faut bien garder à l'esprit, c'est que PHP est exécute côté serveur et le module Flash, côté client.
    Citation Envoyé par la_unge
    -> Comment créer un dossier par ftp en flash ?
    C'est à PHP de créer le dossier. Flash n'est rien d'autre que le formulaire, il ne fait qu'envoyer des informations vers le script PHP de ton choix. Bien entendu, tu peux ajouter un champs de saisie suplémentaire dans le module flash pour pouvoir spécifier un dossier d'upload.

    Mais l'idéal, selon moi, c'est que cet Id reste sur le serveur au lieu de l'envoyer au formulaire Flash pour après le renvoyer au script. De plus, l'utilisateur a la possibilité de le modifier manuellement entre temps, ce qui peut poser problème. Perso, je pense que j'utiliserai les sessions pour sauver cet Id sur le serveur, l'utiliser pour créer le dossier si il n'existe pas, et envoyer les fichiers dans le bon dossier lorsque l'upload est terminé.

    Citation Envoyé par la_unge
    je voudrais un bouton "terminer" qui envoie vers une page d'upload avec en parametre le nom du dossier créé.
    Oui, je vois : Dans mon programme flash, il n'y a qu'un seul bouton parcourir qui s'occupe de sélectionner les fichiers et de les envoyer immédiatement vers le script PHP... Il faudrait que je me replonge dans ce code, si tu es patient... ou alors si un membre du forum Flash est capable d'ajouter ce bouton de validation...

  8. #8
    Membre confirmé Avatar de Sarrus
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2005
    Messages : 180
    Par défaut
    Merci Sub0 Je ne suis pas pressé, cette interface n'est plus prévu pour la 1.0 de mon projet ^^

    Pour qu'on soit bien d'accord :

    ton outil, il upload sur le serveur à une adresse en dur dans le code (.../uploaded/), donc si je veux qu'il upload dans un dossier créé dynamiquement, il faut :

    - que je le créé en php avec la fonction mkdir (avec l'UserId en param)
    - que j'envoie l'info du path à flash qui sera utilisée à la place d'uploaded

    le mec ajoute ses files.

    au clic sur "Terminer", ca transmet à php... ben rien en fait, j'ai juste à parcourir le dossier créé dynamiquement.

  9. #9
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    La démo upload les fichiers dans le dossier uploaded en effet parceque j'avais prévu que l'utilisateur puisse choisir le dossier destination; Le formulaire Flash envoi les fichiers dans le dossier temporaire du serveur, mais dans tous les cas, c'est PHP qui décide au final à quel endroit il va copier les fichiers. C'est pour cette raison que l'Id peut rester sur le serveur; Il n'a pas besoin de transiter par le client.
    que j'envoie l'info du path à flash qui sera utilisée à la place d'uploaded
    Inutile. Au contraire, ça peut poser problème parce que toutes informations qui passent par le client peut être modifiée. Il vaut mieux utiliser les sessions pour sauver cet Id.

  10. #10
    Membre confirmé Avatar de Sarrus
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2005
    Messages : 180
    Par défaut
    hum.. je comprend plus trop, une fois que j'ai up mes fichiers dans le dossier temporaire et que je clique sur terminer, comment je fais pour lui dire (en php) : transporte ces fichiers (et que ceux-ci) de uploaded vers $pathUserid

    Si plusieurs personnes up en meme temps sur uploaded, je ne pourrai pas faire la distinction apres non ?

    (PS : je connais parfaitement les sessions et leur utilisation)

  11. #11
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Oubli le dossier uploaded.
    Voici l'algo que je te conseille :
    • PHP crée une session et enregistre l'Id client dans la session
    • PHP crée (si il n'existe pas déjà) le dossier nommé avec l'Id
    • PHP envoi le formulaire d'upload au client
    • Le client envoi ses fichiers vers le serveur avec le module Flash
    • PHP réceptionne ces fichiers dans le dossier temporaire
    • Le script PHP récupère l'Id du client via la session
    • Enfin, PHP copie les fichiers réceptionnés dans ce dossier

    Bien entendu, cela fonctionne même si il ya plusieurs uploads simultannés.
    Es-tu d'accord ?

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 67
    Par défaut
    Voici un bon site pour créer un Upload (c'est en Anglais mais on est tellement bon que ... )
    http://tutorials.lastashero.com/2005...d_applica.html

  13. #13
    Membre confirmé Avatar de Sarrus
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2005
    Messages : 180
    Par défaut
    Citation Envoyé par Sub0
    Oubli le dossier uploaded.
    Voici l'algo que je te conseille :
    1• PHP crée une session et enregistre l'Id client dans la session
    2• PHP crée (si il n'existe pas déjà) le dossier nommé avec l'Id
    3• PHP envoi le formulaire d'upload au client
    4• Le client envoi ses fichiers vers le serveur avec le module Flash
    5• PHP réceptionne ces fichiers dans le dossier temporaire
    6• Le script PHP récupère l'Id du client via la session
    7• Enfin, PHP copie les fichiers réceptionnés dans ce dossier

    Bien entendu, cela fonctionne même si il ya plusieurs uploads simultannés.
    Es-tu d'accord ?
    Oui ça me va. L'Id client je lai déjà, c'est pas un problème, ni créer le dossier.

    Par contre j'ai du mal de saisir l'étape 4 et 5. Quand le client spécifie les fichiers, il les up dans la foulée, je ne vois pas comment php "réceptionne les fichiers"

  14. #14
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Je ne vois pas ce qui te pose problème. Le code de réception se trouve dans le script upload.php. Je le modifie pour intégrer le dossier :
    Code php : 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
    <?php
    set_time_limit(0);
     
    //============================================================
    // Récupération de l'id dans la session
    //============================================================
    @session_start();
    $uploaddir=$_SESSION['id'];
    if(substr($uploaddir, -1)!='/') $uploaddir.='/';
     
     
    //============================================================
    // Test et création du dossier
    //============================================================
    if(!@is_dir($uploaddir)) @mkdir($uploaddir, 0777);
    if(!@is_dir($uploaddir)) return false;
     
     
    //============================================================
    // Upload d'un fichier
    //============================================================
    if($_FILES['Filedata'])
      return @move_uploaded_file($_FILES['Filedata']['tmp_name'],
        $uploaddir.basename($_FILES['Filedata']['name'])); 
    return false;
     
    ?>
    Cela répond-il à ta question ? Sinon, soit plus précis.

    Note : Il faudra faire attention à la durée de vie de la session; L'utilisateur aura ce délai pour choisir les fichiers, sinon la session ne sera plus valide et le programme ne trouvera plus l'Id. Il faut donc augmenter cette durée.

  15. #15
    Membre confirmé Avatar de Sarrus
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2005
    Messages : 180
    Par défaut
    Lors de l'upload via flash, les fichiers ne sont jamais dans un repertoire commun ?

    ensuite php vient tranferer les fichiers du "temp" au dossier spécifique à l'user.

    Mais ya bien un moment ou les fichiers sont dans un rep commun non ?

  16. #16
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Flash n'est ni plus ni moins qu'un formulaire, exactement comme un formulaire d'upload HTML avec un champs de type File. Lors d'un upload, le script PHP réceptionne les données dans son dossier temporaire et une fois le transfert achevé, le script PHP s'exécute. A ce moment là, le nom du fichier temporaire où se trouvent les données uploadées est donné par $_FILES['Filedata']['tmp_name'] tandis que le nom original du fichier est donné par $_FILES['Filedata']['name']. La fonction move_uploaded_file() va déplacer le fichier temporaire vers le dossier que l'on aura choisi et renommer ce fichier avec le nom original.

    Lors de l'upload via flash, les fichiers ne sont jamais dans un repertoire commun ?
    Les fichiers sont uploadés l'un après l'autre. Autrement dit, il n'y aura qu'un seul fichier dans le dossier temporaire.

    ensuite php vient tranferer les fichiers du "temp" au dossier spécifique à l'user.
    oui, comme je l'ai expliqué au début de ce message.

    Mais ya bien un moment ou les fichiers sont dans un rep commun non ?
    Non, ils sont uplodés un par un, et déplacé dans le dossier final dès que l'upload du fichier est complet.

  17. #17
    Membre confirmé Avatar de Sarrus
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2005
    Messages : 180
    Par défaut
    D'accord !!!

    Je n'avais pas compris qu'ils étaient transferés un par un.

    Et si 2 personnes en meme temps up un fichier via flash, que les fichiers sont arrivés en même temps, comment php sait-il que tel fichier va pour tel user ? on transmet le nom du fichier ?

    (peut-etre que je n'ai pas bien saisi l'utilité de $_FILES[])

  18. #18
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Le nom du fichier temporaire est propre à la requête et est unique. La requête intègre également le nom du fichier. Tous ces paramètres sont transmis par $_FILE. Ainsi, PHP ne peut pas mélanger les fichiers. Il sait que tel fichier temporaire va avec tel nom de fichier pour tel utilisateur.

  19. #19
    Membre confirmé Avatar de Sarrus
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2005
    Messages : 180
    Par défaut
    Ok

    Donc la seule com qu'il y a entre flash et php serait le nom du fichier temporaire, qui sera ensuite dans $_FILES['Filedata']['tmp_name'] .

    cette procédure de transfert se fait à chaque pression sur "telecharger" du module flash, ensuite si l'utilisateur à fini, il clique sur terminer, ce qui le redirige vers une page où il pourra détailler le contenu de chacun de ses fichiers.

  20. #20
    Membre éclairé Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Par défaut Comment ajouter un champ supplémentaire ?
    Bonjour tout le monde.

    J'ai un code FLASH pour télécharger un fichier via PHP. Le code marche nickel. Ce que j'aimerais faire, c'est d'ajouter un champ nom et un champ email au FLASH Quelqu'un peut m'aider? Le traitement au niveau PHP ne pose pas de prob si vous m'aidez à envoyer les deux variables via FLash.

    Voici le code Flash
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
     
    import flash.net.FileReference;
    import flash.net.FileReferenceList;
    var listener:Object = new Object();
     
     
    //============================================================================
    // Définition des constantes du script
    //============================================================================
    fileURL = "upload.php";
    MaxSize =40000000;
    //fileURL = "/cgi-bin/upload.pl";
    //MaxSize = -1;
     
     
    //============================================================================
    // Formatage de la taille des fichiers
    //============================================================================
    function GetSizeFormat(Size:Number){
      if (Size >= 1000) 
        return Math.floor(Size/1000) + " Ko";
      else
        return Size + " octets";
    }
     
    //============================================================================
    // Sélection des fichiers + uploader la liste des fichiers
    //============================================================================
    listener.onSelect = function(fileRefList:FileReferenceList) {
      browse_btn.enabled = false;
      trace("onSelect");
      var list:Array = fileRefList.fileList;
      var file:FileReference;
      for(var i:Number = 0; i < list.length; i++) {
        file = list[i];
        trace("name: " + file.name);
        trace(file.addListener(this));
        if ((file.size <= MaxSize) or (MaxSize < 0)) {
    	  file.upload(fileURL);
    	} else {
    	  var item:Object = new Object();
          item.FileSize = "Annule";
          item.FileName = file.name;
          grid.addItem(item);
        }
      }
    }
     
    //============================================================================
    // Annulation du dialogue d'ouverture de fichiers
    //============================================================================
    listener.onCancel = function():Void {
      trace("onCancel");
      browse_btn.enabled = true;
      stat.text = "";
    }
     
    //============================================================================
    // Evénement d'ouverture d'un fichier
    //============================================================================
    listener.onOpen = function(file:FileReference):Void {
      trace("onOpen: " + file.name);
    }
     
    //============================================================================
    // Affichage de la progression
    //============================================================================
    listener.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void {
      if (bytesTotal == -1) 
        stat.text = "Impossible de determiner le poids du fichier "+file.name;
      else {
        stat.text = "Telechargement de " + file.name + " : " +
    	  Math.floor((bytesLoaded/file.size)*100) + "% of " +
    	  GetSizeFormat(file.size);
        browse_btn.enabled = false;
      }
    }
     
    //============================================================================
    // Téléchargement completé
    //============================================================================
    listener.onComplete = function(file:FileReference):Void {
      trace("onComplete: " + file.name);
      stat.text = "Le transfert est maintenant termine !";
      browse_btn.enabled = true;
      var item:Object = new Object();
      item.FileSize = GetSizeFormat(file.size);
      item.FileName = file.name;
      grid.addItem(item);
    }
     
    //============================================================================
    // Evénement gestion des erreurs
    //============================================================================
    listener.onHTTPError = function(file:FileReference, httpError:Number):Void {
      trace("onHTTPError: " + file.name + " httpError: " + httpError);
      stat.text = "HTTPError = Erreur de transmission du fichier " + file.name;
    }
    listener.onIOError = function(file:FileReference):Void {
      trace("onIOError: " + file.name);
      stat.text = "IOError = Erreur de transmission du fichier " + file.name;
    }
    listener.onSecurityError = function(file:FileReference, errorString:String):Void {
      trace("onSecurityError: " + file.name + " errorString: " + errorString);
      stat.text = "SecurityError = Erreur de transmission du fichier " + file.name + ". " + errorString;
    }
     
    //============================================================================
    // Dialogue de sélection des fichiers
    //============================================================================
    browse_btn.onRelease = function():Void {
      stat.text = "Selection des fichiers a telecharger...";
      browse_btn.enabled = false;
      fileRef.browse(allTypes);
    }
     
    //============================================================================
    // Main
    //============================================================================
    var fileRef:FileReferenceList = new FileReferenceList();
    var allTypes:Array = new Array();
    var imageTypes:Object = new Object();
    imageTypes.description = "Tous fichiers (*.*)";
    imageTypes.extension = "*.*;";
    allTypes.push(imageTypes);
    fileRef.addListener(listener);
    Merci beaucoup

Discussions similaires

  1. [Upload] upload fichiers: interaction Flash <-> Php?
    Par fred23195 dans le forum Langage
    Réponses: 2
    Dernier message: 30/01/2007, 07h07
  2. [FLASH 8] Upload de fichiers
    Par abenhass dans le forum Flash
    Réponses: 1
    Dernier message: 10/08/2006, 17h34
  3. [Upload] Upload de fichier avec un script PHP
    Par largolgd dans le forum Langage
    Réponses: 7
    Dernier message: 23/04/2006, 15h21
  4. [Upload] Upload de fichier php ou ssh
    Par BenoitDenis dans le forum Langage
    Réponses: 5
    Dernier message: 08/03/2006, 13h38
  5. [FTP] upload de fichiers via PHP
    Par r-zo dans le forum Langage
    Réponses: 7
    Dernier message: 02/01/2006, 15h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo