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

PHP & Base de données Discussion :

Affichage d'img blob depuis une base de donnée


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    auto-entrepreneur en developpement web
    Inscrit en
    Mai 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : auto-entrepreneur en developpement web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2018
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Affichage d'img blob depuis une base de donnée
    Bonsoir,

    je ne sais pas si ce sujet est bien placé, et pour tout avouer, c'est la première fois que je me sers de votre forum. Je me tourne vers vous car je coince sur un problème que je vois de façon récurrente dans vos topic, mais je ne trouve pas de solution a mon problème.
    Je travail sur la réalisation d'une plateforme de commande, et pour ce faire, je cherche a afficher une liste de produit avec leurs photos, leurs nom, leurs proprio, et leurs prix. J'ai donc créer une table sur ma base de donnée qui récupère les image des articles en question sous forme de blob afin qu'il puissent être lier aux différents article.
    Le stockage passe très bien, seulement une fois l'extraction faite, je n'arrive pas a afficher mes produit dans la page et je me retrouve confronté au message d'erreur "l'image.... ne peut être affichée car elle contient des erreur" sur un fond de page gris/noir.

    Afin de dissocier les différents code au maximum, je me sert des procédure stockée et des fonction sql pour faire toute mes requetes sur la base de donnée. Et ces procédure sont appelée via mes fonctions php traitant les affichage d'article. Pourriez vous s'il vous plaît me donner quelques conseil pour résoudre mon problème car la je coince depuis 3 jour sur ce problème et faut vraiment que j'arrive a trouver une solution???

    Voici les différentes partie de code agissant.
    * page "produit.php":
    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
     
    <?php
    session_start();
    if(isset($_SESSION["username"]) && isset($_SESSION["password"])){
    ?>
    <!doctype html>
    <html lang="fr">
        <head>
            <title>Les Produit du Terroir </title>
            <meta http-equiv="x-ua-compatible" content="ie=edge">
            <!-- <meta http-equiv="content-type" content="text/html; charset=utf-8"/>-->
            <meta name="description" content="">
            <meta name="viewport" content="width=device-width, initial-scale=1">
     
            <link rel="apple-touch-icon" href="apple-touch-icon.png">
     
            <!-- style bootstrap -->
            <link rel="stylesheet" href="htmlTemplate/css/bootstrap.css">
     
            <!-- style customiz� -->
            <link rel="stylesheet" href="htmlTemplate/css/normalize.css">
            <link rel="stylesheet" href="htmlTemplate/css/mise_en_page_generale.css">
            <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
        </head>
     
        <!-- Copyright DWE64  -->
        <body>
            <header class="container" id="header">
                <nav class="navbar">
                    <a href="index.php">accueil</a>
                    <a href="fournisseur.php">Nos partenaires</a>
                    <a href="produit.php">Nos Produits</a>
                    <a href="contact.php">Nous contacter</a>
                </nav>
                <div name="iconeEnregistrement" class="container">
                    <p>
                        <ul id="connexion" class="boutonConnexion">
                            <li><a href="profil.php"><img src="htmlTemplate/img/iconeMenu/user.png" id="iconeConnexion"/></a>
                            <li><a href="fichierGestionPhp/deconnexion.php"><img src="htmlTemplate/img/iconeMenu/logout.png" id="iconeConnexion"/></a></li>
                        </ul>
                    </p>
                </div>
            </header>
     
            <section class="container" id="section">
                <aside class="container" id="legume">
     
                    <h1 id="titreAsideLegume"> Nos légumes du Terroir</h1>
                    <div class="container" id="listeProduits">
                        <?php
                        require "/fichierGestionPhp/RequeteSql.Class.php";
                        $afficherInfoProduit= new RequeteSql();
                        $afficherInfoProduit->afficherArticleCategorieLegume();
                        ?>
     
     
                    </div>
                </aside>
            </section>
            <footer class="container" id="footer">
            </footer>
            <script src="htmlTemplate/js/vendor/jquery-3.2.1.min.js"></script>
            <script src="htmlTemplate/js/vendor/modernizr-3.5.0.min.js"></script>
            <script src="fichierGestionJs/affichageArticle4.js"></script>
            <script src="fichierGestionJs/ajoutPanier.js"></script>
        </body>
    </html>
    <?php }else{
        header("Location:/plateformeMarechaux/index.php?connexionRequise");
    }?>


    *page "profil.php" qui permet la saisie de produit:
    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
     
    <?php
    session_start();
     if(isset($_SESSION["username"]) && isset($_SESSION["password"])){
    ?>
    <!doctype html>
    <html lang="fr">
        <head>
            <title>Les Produit du Terroir </title>
            <meta http-equiv="x-ua-compatible" content="ie=edge">
            <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
            <meta name="description" content="">
            <meta name="viewport" content="width=device-width, initial-scale=1">
     
            <link rel="apple-touch-icon" href="apple-touch-icon.png">
     
            <!-- style bootstrap -->
            <link rel="stylesheet" href="htmlTemplate/css/bootstrap.css">
     
            <!-- style customiz� -->
            <link rel="stylesheet" href="htmlTemplate/css/normalize.css">
            <link rel="stylesheet" href="htmlTemplate/css/mise_en_page_generale.css">
            <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
     
        </head>
     
        <!-- Copyright DWE64  -->
        <body>
            <header class="container" id="header">
                <nav class="navbar">
                    <a href="index.php">accueil</a>
                    <a href="fournisseur.php">Nos partenaires</a>
                    <?php if(isset($_SESSION["username"]) && isset($_SESSION["password"])){?>
                    <a href="produit.php">Nos Produits</a>
                    <?php }?>
                    <a href="contact.php">Nous contacter</a>
                </nav>
                <div name="iconeEnregistrement" class="container">
                    <p>
     
                        <ul id="connexion" class="boutonConnexion">
                            <li><a href="profil.php"><img src="htmlTemplate/img/iconeMenu/user.png" id="iconeConnexion"/></a>
                            <li><a href="fichierGestionPhp/deconnexion.php"><img src="htmlTemplate/img/iconeMenu/logout.png" id="iconeConnexion"/></a></li>
                        </ul>
     
                    </p>
                </div>
            </header>
     
            <section class="container" id="section">
                <aside class="container">
                    <div class="container" id="listeProduits">
     
     
                        <form action="fichierGestionPhp/gestionArticle.php" method="POST" enctype="multipart/form-data">
                            <p>
                                <label for="nomArticle" class="texteP">Nom article</label>
                                <input type="text" placeholder="Nom" name="nomArticle" id="nomArticle"/>
                            </p>
                            <div>
                                <label for="fruit/legume">fruits/legume</label>
                                <input type="radio" id="legume" name="typeProduit" value="1" checked/>
                                  <label for="viande">Viande</label>
                                  <input type="radio" id="viande" name="typeProduit" value="2"/>
                                  <label for="charcuterie">Charcuterie</label>
                                  <input type="radio" id="charcuterie" name="typeProduit" value="3"/>
                                  <label for="fromage">Fromage</label>
                                  <input type="radio" id="fromage" name="typeProduit" value="4"/>
                                  <label for="boulangerie">Boulangerie</label>
                                  <input type="radio" id="boulangerie" name="typeProduit" value="5"/>
                                  <label for="viennoiserie">Viennoiserie</label>
                                  <input type="radio" id="viennoiserie" name="typeProduit" value="6"/>
                                  <label for="epicerie">Epicerie</label>
                                  <input type="radio" id="epicerie" name="typeProduit" value="7"/>
                                  <label for="poisson">Poissonnerie</label>
                                  <input type="radio" id="poisson" name="typeProduit" value="8"/>
                              </div>
                            <p>
                                <label for="imgArticle" class="texteP">Photo du produit</label>
                                <input type="file" name="imgArticle" id="imgArticle"/>
                                <input type="hidden" name="MAX_FILE_SIZE" value="100000">
                            </p>
                            <p>
                                <label for="quantite" class="texteP">Quantité disponible</label>
                                <input type="number" placeholder="Quantité" name="quantite" id="quantite"/>
                            </p>
                            <p>
                                <label for="prix" class="texteP">Prix HT/KG</label>
                                <input type="text" placeholder="prix" name="prix" id="prix"/>
                            </p>
                            <p>
                                <input class="boutonEnvoyer" type="submit" value="Envoyer"/>
                            </p>
                        </form>                    
                    </div>
     
                </aside>
                <aside class="container">
                    <div>
                    </div>
                </aside>
            </section>
            <footer class="container" id="footer">
            </footer>
            <script src="htmlTemplate/js/vendor/jquery-3.2.1.min.js"></script>
            <script src="htmlTemplate/js/vendor/modernizr-3.5.0.min.js"></script>
            <script src="fichierGestionJs/affichageArticle4.js"></script>
            <script src="fichierGestionJs/ajoutPanier.js"></script>
        </body>
    </html>
    <?php
     }else{
         header("Location:/plateformeMarechaux/index.php?connexionRequise");
     }?>
    *code permettant l'upload de l'image sur la base:
    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
     
    <?php
    session_start();
     
    include "RequeteSql.class.php";
     
    $nomArticle=$_POST['nomArticle'];
    $quantite=$_POST['quantite'];
    $prix=$_POST['prix'];
    $typeProduit=$_POST['typeProduit'];
    $user=$_SESSION["username"];
    $ret=false;
    $img_blob='';
    $img_taille=0;
    $img_type='';
    $img_nom='';
    $taille_max=250000;
    $extensions = array('.png', '.gif', '.jpg', '.jpeg');
    $ret= is_uploaded_file($_FILES['imgArticle']['tmp_name']);
     
    if(!$ret){
        echo "problème de transfert";
        return false;
    }else{
        //fichier correctement reçu
        $img_taille=$_FILES['imgArticle']['size'];
        $extension = strrchr($_FILES['imgArticle']['name'], '.');
        if($img_taille>$taille_max){
            echo "fichier trop gros";
            return false;
        }
        $img_type=$_FILES['imgArticle']['type'];
        if(!in_array($extension, $extensions)){
            echo 'mauvais type de fichier';
        }else{
            $img_nom=$_FILES['imgArticle']['name'];
        }
     
        // récuperation de la valeur binaire de l'image
        $img_blob=file_get_contents($_FILES['imgArticle']['tmp_name']);
     
     
        if(isset($nomArticle) && isset($quantite) && isset($prix) && isset($typeProduit)){
     
            $newArticle= new RequeteSql();
            $newArticle->ajoutArticleBdd($user, $nomArticle, $quantite, $prix, $img_nom, $img_taille, $img_type, $img_blob, $typeProduit);
            header("Location:/plateformeMarechaux/profil.php?typeProduitvaut=".$typeProduit."");
        }
     
     
    }
     
    ?>
    * code de ma page "RequeteSql.Class.php":
    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
     
    public function ajoutArticleBdd($user, $nomArticle, $quantite, $prix, $img_nom, $img_taille, $img_type, $img_blob, $typeProduit){
     
            $ouvertureConnexion= new DatabaseManager('localhost','','plateformemarechaux','root',''); //appel implicite au constructeur      
            $ouvertureConnexion->connexionDatabase();
     
     
            $statement=$ouvertureConnexion->connexionDb->prepare("CALL ajoutImage(:a, :b, :c, :d);");
            $statement->bindValue(":a", $img_nom);
            $statement->bindValue(":b", $img_taille);
            $statement->bindValue(":c", $img_type);
            $statement->bindValue(":d", addslashes($img_blob));
            $statement->execute();
            echo "deconnexion demandee";
            unset($ouvertureConnexion);
     
            $ouvertureConnexion2= new DatabaseManager('localhost','','plateformemarechaux','root',''); //appel implicite au constructeur      
            $ouvertureConnexion2->connexionDatabase();
     
     
            $statementAjoutArticle=$ouvertureConnexion2->connexionDb->prepare("CALL ajoutArticle(:a, :b, :c, :d, :e, :f, :g, :h);");
            $statementAjoutArticle->bindValue(":a", $nomArticle);
            $statementAjoutArticle->bindValue(":b", $quantite);
            $statementAjoutArticle->bindValue(":c", $prix);
            $statementAjoutArticle->bindValue(":d", $img_nom);
            $statementAjoutArticle->bindValue(":e", $img_taille);
            $statementAjoutArticle->bindValue(":f", $img_type);
            $statementAjoutArticle->bindValue(":g", addslashes($img_blob));
            $statementAjoutArticle->bindValue(":h", $typeProduit);
            $statementAjoutArticle->execute();
            echo "deconnexion demandee";
            unset($ouvertureConnexion2);
     
            $ouvertureConnexion3= new DatabaseManager('localhost','','plateformemarechaux','root',''); //appel implicite au constructeur      
            $ouvertureConnexion3->connexionDatabase();
     
            $statementAssociationUserArticle=$ouvertureConnexion3->connexionDb->prepare("CALL id_Proprio(:a, :b);");
            $statementAssociationUserArticle->bindParam(":a", $user);
            $statementAssociationUserArticle->bindParam(":b", $nomArticle);
            $statementAssociationUserArticle->execute();
     
            echo "deconnexion demandee";
            unset($ouvertureConnexion3);
     
     
        }
     
     
        /*ici requete affichage des articles*/
     
        public function afficherArticleCategorieLegume(){
     
            $ouvertureConnexion= new DatabaseManager('localhost','','plateformemarechaux','root',''); //appel implicite au constructeur  
            $ouvertureConnexion->connexionDatabase();
            $statement=$ouvertureConnexion->connexionDb->prepare("CALL affichageArticleCategorieLegume();");
            $statement->execute();
     
            while ($donnees = $statement->fetch()){
     
                if(!$donnees['idTypeProduit']){
     
                    echo "probleme d'identifiant de catégorie/ donnees['idTypeProduit'] vaut : ".$donnees['idTypeProduit'];
                }else{
     
     
                    header("Content-type:".$donnees['img_type']);
                    //echo $donnees['img_blob'];
     
                ?>
                <div name="article1" id="article">
                    <form method="POST" action="ajoutPanier.php"> <!-- a voir si je passe par php pour l'ajout au panier ou par javascript -->
                    <div name="imageArticle" id="cadreImageArticle">   
                        <?php
                        echo '<img src="data:image/jpeg;base64,'.base64_encode($donnees['img_blob']).'" title="image"/>';
                        ?>
                    </div>    <!-- image d'un légume -->
                    <div name="titreArticle" id="titreArticle">
                        <p><?php echo $donnees['nomArticle'];?></p>
     
                    </div>
                    <div name="propio" id="proprio">
                        <p><?php echo $donnees['raisonSociale'];?></p>
                    </div>
                    <div name="prixArticle" id="cadrePrix">
                        <div>
                            <?php echo $donnees['prixHtKilo'];?>
                        </div>
                    </div>
                    <div name="QTArticle" id="champQT">
                        <input type="number" name="QtAchat" id="QtAchat"/>
                    </div>
                    <div name="buttonAjoutAuPanier" id="boutonAjouterAuPanier">
                        <input type="submit" value="Commander"/>
                    </div>
                    </form>
                </div>
                <?php
                }       
            }               
     
        }
    pour mes procédure voici ce qu'elle contiennent:

    * affichageArticleCategorieLegume()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT idTypeProduit, img_type, img_blob, nomArticle, raisonSociale, prixHtKilo FROM t_typeproduit, t_imgarticle, article, utilisateur
    WHERE idTypeProduit=1;
    *ajoutArticle(varchar nomArticle, Int quantite, double prix, varchar nomImg, varchar tailleImg, varchar typeImg, longblob imgBlob, int t_typeProduit)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    DECLARE idImg INT (11);
     
    SET idImg=selectionImgId(nomImg, tailleImg, typeImg, imgBlob);
     
    INSERT INTO article (nomArticle, QTenStock, prixHtKilo, t_imgArticle_id_imgArticle, t_typeproduit) VALUES (nomArticle, quantite, prix, idImg, t_typeProduit);
    *selectionImgId(nomImg, tailleImg, typeImg, imgBlob):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    declare idImg INT(11);
     
    SELECT id_imgArticle INTO idImg FROM t_imgarticle WHERE img_nom=nom AND img_taille=taille AND img_type=type AND img_blob=imgblob;
     
    return idImg;
    *ajoutImage(varchar nom, varchar taille, varchar type, imgBlob longblob):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO t_imgarticle (img_nom, img_taille, img_type, img_blob) VALUES (nom, taille, type, imgBlob);
    *id_Proprio (varchar mail, varchar nomArticle):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    DECLARE idUser INT(11);
    DECLARE idArt INT(11);
     
    SET idUser=set_IdUser(mail);
    SET idArt=set_IdArticle(nomArticle);
     
     
    INSERT INTO utilisateur_has_article (utilisateur_idutilisateur, article_idarticle) VALUES (idUser, idArt);
    *set_IdUser(mail):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    DECLARE iduser INT(11);
     
    SELECT idutilisateur INTO iduser FROM utilisateur WHERE mail=email;
     
    return iduser;
    *set_IdArticle(nomArticle):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    DECLARE idArt INT(11);
     
    SELECT idarticle INTO idArt FROM article WHERE nomArticle=nomArt;
     
    return idArt;
    Pour mes table, celle ci sont bien paramétrer (du moins je pense) les ayant fait avec mysqlworkbench...


    Voilà tout y est je pense.... merci par avance pour le temps que vous aurez passé a étudier mon code :/ ....

    PS: si vous estimez que ce sujet n'est pas a sa place, n'hésitez pas a le déplacer ^^

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Points : 123
    Points
    123
    Par défaut
    Salut,

    En tentant de lire ta question, je me suis complètement noyé dans les informations que tu fournis...

    La première interrogation qui m'est venue est : pourquoi diable stock-t-il ses images dans un champ blob? (bon pourquoi pas, mais dans ce cas, à proscrire les "SELECT * ..." qui vont être très gourmands...)
    J'aurais tendance à stocker les fichiers dans le système de fichiers directement (mais là, peut-être n'est-ce que mon avis)

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Tout d'abord, il serait intéressant de savoir sur quel SGDB tu travailles, parce que le fonctionnement des champs BLOB et assimilés peut être différent.
    Ensuite, je voudrais voir le code d'affichage de l'image (et la récupération en base qui va avec)


    Ensuite, cette ligne m'embête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $statement->bindValue(":d", addslashes($img_blob));
    A quoi sert addslashes ?

    Et si tu utilises PDO, tu peux regarder les exemples de la doc : PDO - Les gros objets (LOB)
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. Type BLOB depuis une base de données Oracle
    Par tunis71187 dans le forum Designer
    Réponses: 0
    Dernier message: 13/06/2011, 12h25
  2. affichage pdf depuis une base de donnée
    Par airod dans le forum Zope
    Réponses: 6
    Dernier message: 03/05/2010, 17h06
  3. Réponses: 1
    Dernier message: 17/03/2010, 15h33
  4. [MySQL]Affichage d'image depuis une base de données
    Par Sofute dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 20/02/2007, 14h43
  5. [SGBD] affichage d'image jpeg depuis une base mysql
    Par eric_300 dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/09/2005, 12h27

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