Systeme d'avatar

Résolu
Bonjour,

Je suis en train de crée un site et j'en suis au système d'avatar, j'aimerais que le membre puisse choisir l'avatar sur son ordinateur et que la photo se stock sur ma base de donnée ou ftp peu importe.. J'ai chercher sur google et j'ai trouver des trucs mais je ne sais pas pourquoi sa ne marche pas pourtant j'ai essayer pleins de trucs :S J'espère qu'on me répondra bientôt :) A+ :)

16 réponses

Résumé de la discussion

Le problème central porte sur la mise en place d'un système d'avatar permettant au membre de téléverser une image depuis son ordinateur et de la stocker sur le serveur, en BDD ou via FTP. Plusieurs éléments essentiels ressortent: il faut stocker les fichiers dans un répertoire serveur et n'enregistrer que le chemin en BDD, tout en utilisant une extension moderne comme mysqli ou PDO. Il faut fournir le code d'upload via $_FILES, vérifier l'extension et le type, gérer les erreurs et s'assurer que les variables clés (ex: user_id, avatar) existent pour enregistrer le nom du fichier.

Bobot (l’IA à votre service)
  1. Modérateur
    Bonjour,

    1 - On ne stocke pas les fichiers / images DANS la BDD .... on les mets dans un répertoire du serveur ... et on ne stocke en BDD .."que" le chemin pour y accéder.

    2 -
    j'ai trouver des trucs mais je ne sais pas pourquoi sa ne marche pas

    Si tu ne nous montres pas ton code ... impossible pour nous de t'aider....

    **** Attention ****
    Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
    Explications disponibles ici :
    https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

    .
    1. Modérateur

      Je me reconnecte demain la je deco donc a demain si t'es toujours là :)

      Ben je suis là quasiment tous les jours... 12 heures par jour ^^
      donc y'a des chances ;-)

      Donc par contre... tu utilises l'ancienne extension mysql_* ... elle est considérée comme obsolète.
      Il serait préférable de passer à une extension plus récente comme mysqli_* ou (je préfère...) PDO !
      Voici un peu de lecture sur le sujet : https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top

      Quoi qu'il en soit .. et quelque soit l'extension que tu utiliseras .. il faudra donc faire une requête pour pouvoir insérer les données dans ta BDD.

      Pour pouvoir t'aider à la faire .. il faudra que tu nous donnes la structure de ta table...
      Dans l'idéal .. tu ajoutes (si ce n'est pas déjà fait) un champ "avatar" de type varchar(255) qui servira à stocker le nom du fichier.

      Il faudra également que tu nous montres le code que tu as utilisé pour l'upload (des fois que tu aies changé des choses par rapport au code que je t'ai proposé dans le lien).

      à partir de là .. on pourra finaliser ton code.
      1. Modérateur

        c'est lequel le code que tu veux ?

        Un de ceux que tu as essayé pour uploader les fichiers sur ton serveur (car oui..il faut commencer par ça )

        Car en gros ...
        en 1 tu upload l'avatar sur le serveur
        Une fois l'upload réalisé ... tu stockes (via un requête de type INSERT ) le nom du fichier que tu as uploadé ( et donc...qui a été mis dans un répertoire de ton serveur) dans la BDD
        et voilou.. c'est tout.

      2. D'accord tiens :
        <?php
         
          if(isset($_POST['submit']))
          {
           $avatar = $_FILES['avatar']['name'];
           $avatar_tmp = $_FILES['avatar']['tmp_name'];
           if(!empty($avatar))
            
            {
             $image_ext = strtolower(end(explode('.',$avatar)));
             
             if(in_array($image_ext,array('jpg','jpeg','png','gif')))
             {
              modifier_image_profile($avatar_tmp,$avatar);
              header("Location: ../membre/");
             }else{
              echo"<center><h3><br><br><br><br>Veuillez saisir une image valide</h3></center>";
             }
             
            }
          }
          ?>


        EDIT : Ajout du LANGAGE dans les balises de code
        Explications disponibles ici :
        https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

        .
        1. Modérateur
          Ok.
          Et qu'est-ce qui ne marche pas ?

          As tu essayé de faire un PRINT de la variable $_FILES pour voir ce qu'elle contient ?
          <?php
          //---------------------------------------------------------// 
          // le temps des tests :
          //---------------------------------------------------------//
          echo "<br><br> POST : <br>";
          print_r($_POST);
          echo "<br><br> FILES : <br>";
          print_r($_FILES);
          echo "<br>";
          //---------------------------------------------------------//
            if(isset($_POST['submit'])) {
             $avatar = $_FILES['avatar']['name'];
             $avatar_tmp = $_FILES['avatar']['tmp_name'];
             if(!empty($avatar)) {
               $image_ext = strtolower(end(explode('.',$avatar)));
               
               if(in_array($image_ext,array('jpg','jpeg','png','gif'))){
                 modifier_image_profile($avatar_tmp,$avatar);
                 header("Location: ../membre/");
               }else{
                 echo"<center>
                           <h3><br><br><br><br>Veuillez saisir une image valide</h3>
                          </center>";
               }
               
              }else{
                echo"<center>
                           <h3>Erreur : Aucune image n'a été selectionnée !</h3>
                          </center>";
               } 
            }
            ?>
          
          


          Et ... que contient le code de ta fonction : modifier_image_profile ?
          C'est elle qui doit contenir le "stockage" sur le serveur ainsi que l'insertion en BDD...

          1. Le lien du code que tu m'as donné ( http://phpcodeur.net/articles/php/upload ) l'upload marche bien mais comment je fait si je veux que le fichier qui a été upload sa change l'image de profil du membre ?
          2. Modérateur
            Comme je te l'ai dit ...
            Une fois l'image uploadée sur le serveur ... il faut stocker son chemin dans ta BDD....

            Si aucun avatar existe pour le user .. tu fais un INSERT ..... sinon .. tu fais un UPDATE.
            (ou éventuellement un REPLACE => https://dev.mysql.com/doc/refman/8.0/en/replace.html )
          3. @jordane45Je sais pas faire sa, si tu pouvais m'aider :/
        2. Modérateur

          Je sais pas faire sa, si tu pouvais m'aider :/


          Tout d'abord .. il faut qu'on sache comment tu te connectes à ta BDD dans tes scripts PHP ..
          Tu utilises quoi : mysql_* , mysqli_* ou PDO pour te connecter à ta Base Mysql ?

          => Montres nous ton code de connexion à ta BDD

          1. Tiens voilà :
            mysql_connect('', '', '');
            mysql_select_db('');

            Je me reconnecte demain la je deco donc a demain si t'es toujours là :)
        3. Re :) alors pour la colonne avatar c'est fait j'ai mis en varchar 255, ensuite pour l'extension mysql_ , un peu la flemme de la changer, je la change que si je suis obligé ^^ ensuite voici le code du bouton pour upload :
           <form method="post" enctype="multipart/form-data" action="upload.php">
          <p>
          <input type="file" name="fichier" size="30">
          <br><br><input type="submit" name="upload" value="Uploader">
          </p>
          </form>


          Et le code pour l'upload :
          <?php
          
          if( isset($_POST['upload']) ) // si formulaire soumis
          {
              $content_dir = 'upload/'; // dossier où sera déplacé le fichier
          
              $tmp_file = $_FILES['fichier']['tmp_name'];
          
              if( !is_uploaded_file($tmp_file) )
              {
                  exit("Le fichier est introuvable");
              }
          
              // on vérifie maintenant l'extension
              $type_file = $_FILES['fichier']['type'];
          
              if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') )
              {
                  exit("Le fichier n'est pas une image");
              }
          
              // on copie le fichier dans le dossier de destination
              $name_file = $_FILES['fichier']['name'];
          
              if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
              {
                  exit("Impossible");
              }
          
              echo "Le fichier a bien été uploadé";
          }
          
          ?>


          Voilà en espérant que tu me répondes vite :p

          EDIT : Ajout du LANGAGE dans les balises de code
          Explications disponibles ici :
          https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

          .
          1. Modérateur
            Donc... si l'upload se fait correctement... il ne reste plus qu'à insérer le chemin en base.

            <?php
            $id_user = isset($_POST['id_user'])?$_POST['id_user']:NULL;
            
            if($id_user){
            if( isset($_POST['upload']) ) { // si formulaire soumis
            
                $content_dir = 'upload/'; // dossier où sera déplacé le fichier
            
                $tmp_file = $_FILES['fichier']['tmp_name'];
            
                if( !is_uploaded_file($tmp_file) ) {
                    exit("Le fichier est introuvable");
                }
            
                // on vérifie maintenant l'extension
                $type_file = $_FILES['fichier']['type'];
            
                if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') ) {
                    exit("Le fichier n'est pas une image");
                }
            
                // on copie le fichier dans le dossier de destination
                $name_file = $_FILES['fichier']['name'];
            
                if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )  {
                    exit("Impossible");
                }else{
                  
                 // ICI tu places le code qui va insérer en BDD !
                  //par exemple :
                  $sql = "UPDATE tatableusers SET avar = '$name_file' WHERE id_user = '$id_user'";
                 mysql_query($sql);
                 
            
                   echo "Le fichier a bien été uploadé";
                }   
            }
            }else{
             echo " Erreur ! Aucun ID_USER défini ! ";
            }
            
            ?>
            


            NB : Il faudra penser à passer également l' id de ton user dans ton formulaire pour savoir à qui tu affectes l'avatar.

            Pour cela.. tu peux utiliser un champ input hidden
            par exemple :
            <form method="post" enctype="multipart/form-data" action="upload.php">
            <p>
            <input type="hidden" name="id_user" value="<?php echo $id_user;?>">
            <input type="file" name="fichier" size="30">
            <br><br><input type="submit" name="upload" value="Uploader">
            </p>
            </form>
            
            


            Cordialement,
            Jordane
            1. Quand j'essaie sa me dit : Erreur ! Aucun user_id défini
          2. Modérateur
            A quel momment affiches tu le formulaire pour Uploadé l'avatar ?

            Quel est le code COMPLET de cette page
            celle qui contient :
            <form method="post" enctype="multipart/form-data" action="upload.php">
            <p>
            <input type="hidden" name="id_user" value="<?php echo $id_user;?>">
            <input type="file" name="fichier" size="30">
            <br><br><input type="submit" name="upload" value="Uploader">
            </p>
            </form>
            


            .... et dans laquelle tu dois normalement récupérer l'ID de ton USER ... et le mettre dans l'input Hidden

            1. Tiens le code complet de la page :
              <?php
              session_start();
               
                //---------------------------------------------------------
                // Requires fichiers database
                //---------------------------------------------------------
              
               $titre = 'Profil';
              require_once ("../jointures/head.php");
              ?>
              
              <div class="container">
                
                  <?php require_once("../jointures/header.php"); ?>
               
               
               </div>
               <?php
                 if(isset($_SESSION['username']))
                 {
                 ?>
               
               
               <br><br><br><br><br><br><br><br><center>
               <h3><center><font color="orange">Changer votre photo de profil</font></center></h3>
               <center>
               <br>
               <img src ="../membre/upload/base.jpg" height="200" width="200" alt="avatar">
               <br><br>
              <form method="post" enctype="multipart/form-data" action="upload.php">
              <p>
              <input type="hidden" name="id_user" value="<?php echo $id_user; ?>">
              <input type="file" name="fichier" size="30">
              <br><br><input type="submit" name="upload" value="Uploader">
              </p>
              </form>
               
               </center>
               
                 <?php
                 }
                 else
                 {
                 ?>
               
               
               <h3><center>
               <br><br><br>
                 <a href="../membre/connexion.php">Veuillez vous connecté...</a>
                 </center>
                 
                  <?php
                   } 
                   ?>
               
               
               
               
               
               
               <?php require_once("../jointures/footer.php");?>
               <?php require_once("../modal/modal.php"); ?>


              EDIT : Ajout du LANGAGE dans les balises de code
              Explications disponibles ici :
              https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
              1. Modérateur
                Dans le code que tu nous montres actuellement...
                l'information permettant d'identifier l'utilisateur est la variable de session
                $_SESSION['username']

                ... tu peux donc l'utiliser lorsque tu mets à jour l'avatar dans ta BDD.

                La requête deviendrait alors un truc du genre :
                $username = isset($_SESSION['username'])?$_SESSION['username']:NULL;
                if ($username){
                      $sql = "UPDATE tatableusers SET avar = '$name_file' WHERE username = '$username'";
                }else{
                 echo "<br> Erreur ! Aucun USERNAME ! ";
                }
                


                Et tu peux donc retirer le champ input hidden que je t'ai fait ajouter dans le code de ton formulaire.
              2. Sa marche tjs pas tiens le code de mon upload.php :
                <?php
                $username = isset($_POST['username'])?$_POST['username']:NULL;

                if($username){
                if( isset($_POST['upload']) ) { // si formulaire soumis

                $content_dir = 'upload/'; // dossier où sera déplacé le fichier

                $tmp_file = $_FILES['fichier']['tmp_name'];

                if( !is_uploaded_file($tmp_file) ) {
                exit("Le fichier est introuvable");
                }

                // on vérifie maintenant l'extension
                $type_file = $_FILES['fichier']['type'];

                if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') ) {
                exit("Le fichier n'est pas une image");
                }

                // on copie le fichier dans le dossier de destination
                $name_file = $_FILES['fichier']['name'];

                if( !move_uploaded_file($tmp_file, $content_dir . $name_file) ) {
                exit("Impossible");
                }else{

                // ICI tu places le code qui va insérer en BDD !
                //par exemple :
                $sql = "UPDATE users SET avatar = '$name_file' WHERE username = '$username'";
                mysql_query($sql);

                echo "Le fichier a bien été uploadé";
                }
                }
                }else{
                echo " Erreur ! Aucun Username défini ! ";
                }

                ?>
              3. Modérateur
                .. et quelle est la structure de la table ?
              4. id, username, prenom, password, email, avatar, signup_date, region, friends Voilà
            2. Modérateur
              Ok ...
              Tu peux modifier le code par ceci :

                  // ICI tu places le code qui va insérer en BDD !
                    //par exemple :
                    $sql = "UPDATE tatable SET avatar = '$name_file' WHERE username = '$username'";
                   mysql_query($sql) die('Requête invalide : ' . mysql_error() . " <br><br> REQUETE : <br>". $sql);
              
              


              NB : Penses à modifier le nom de ta table ( tatable ) dans la requête ... par le nom de TA TABLE dans ta BDD !

              Tu as également oublié de changer la première ligne par :
              $username = isset($_SESSION['username'])?$_SESSION['username']:NULL;
              

              1. Sa ne marche toujours pas, il y a une page blanche donc une erreur de code, tiens le code :

                <?php
                $username = isset($_SESSION['username'])?$_SESSION['username']:NULL;
                
                if($username){
                if( isset($_POST['upload']) ) { // si formulaire soumis
                
                    $content_dir = 'upload/'; // dossier où sera déplacé le fichier
                
                    $tmp_file = $_FILES['fichier']['tmp_name'];
                
                    if( !is_uploaded_file($tmp_file) ) {
                        exit("Le fichier est introuvable");
                    }
                
                    // on vérifie maintenant l'extension
                    $type_file = $_FILES['fichier']['type'];
                
                    if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') ) {
                        exit("Le fichier n'est pas une image");
                    }
                
                    // on copie le fichier dans le dossier de destination
                    $name_file = $_FILES['fichier']['name'];
                
                    if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )  {
                        exit("Impossible");
                    }else{
                      
                     // ICI tu places le code qui va insérer en BDD !
                      //par exemple :
                      $sql = "UPDATE users SET avatar = '$name_file' WHERE username = '$username'";
                     mysql_query($sql) die('Requête invalide : ' . mysql_error() . " <br><br> REQUETE : <br>". $sql);
                
                     
                
                       echo "Le fichier a bien été uploadé";
                    }   
                }
                }else{
                 echo " Erreur ! Aucun Username défini ! ";
                }
                
                ?>


                et le code du formulaire :
                <form method="post" enctype="multipart/form-data" action="upload.php">
                <p>
                <input type="hidden" name="username" value="<?php echo $username; ?>">
                <input type="file" name="fichier" size="30">
                <br><br><input type="submit" name="upload" value="Uploader">
                </p>
                </form>


                EDIT : AJOUT DU LANGAGE DANS LES BALISES DE CODE ! (encore ....)
                Explications disponibles ici :
                https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

                Merci d'y penser à l'avenir !
                .
                1. Modérateur
                  Déjà ..merci de penser à ajouter le LANGAGE dans les balises de code.
                  Cela rend le code plus lisible !
                  Explications disponibles ici :
                  https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

                  Ensuite... on va forcer l'affichage des éventuelles erreurs de code php et ajouter un peu de debug.

                  Dis moi ce que ça donne :
                  <?php
                  //affichage des erreurs PHP
                  error_reporting(E_ALL);
                  
                  //pour faire un test :
                  echo " <br> TEST !!!! (est-ce que ce message s'affiche sur ta page ??)";
                  
                  //récupération des données :
                  $username = isset($_SESSION['username'])?$_SESSION['username']:NULL;
                  
                  
                  // dossier où sera déplacé le fichier
                  $content_dir = 'upload/'; 
                  		
                  if($username){
                    if( isset($_POST['upload']) ) { // si formulaire soumis
                  
                  
                      if(isset($_FILES['fichier']['tmp_name'])){
                      $tmp_file = $_FILES['fichier']['tmp_name'];
                  
                      if( !is_uploaded_file($tmp_file) ) {
                          exit("Le fichier est introuvable");
                      }
                  
                      // on vérifie maintenant l'extension
                      $type_file = $_FILES['fichier']['type'];
                  
                      if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') && !strstr($type_file, 'png') ) {
                          exit("Le fichier n'est pas une image");
                      }
                  
                      // on copie le fichier dans le dossier de destination
                      $name_file = isset($_FILES['fichier']['name'])?$_FILES['fichier']['name']:NULL;
                  
                      if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )  {
                        exit("Impossible");
                      }else{  
                        // ICI tu places le code qui va insérer en BDD !
                        //par exemple :
                        $sql = "UPDATE users SET avatar = '$name_file' WHERE username = '$username'";
                        mysql_query($sql) or die('Requête invalide : ' . mysql_error() . " <br><br> REQUETE : <br>". $sql);
                        echo "Le fichier a bien été uploadé";
                      }  
                     }else{
                        echo " Erreur ! La variable FILES['fichier']['tmp_name'] n'existe pas !";
                     }	 
                    }else{
                      echo " Erreur ! La variable 'upload' n'existe pas !";
                    }
                  }else{
                   echo " Erreur ! Aucun Username défini ! ";
                  }
                  
                  

                  .
                  PS: Au moment d'exécuter cette page.... quelle est l'adresse qui est indiquée dans ton navigateur internet ?
                  1. Modérateur
                    Tu viens de me dire en MP que ça marche toujours pas...
                    Pourrais tu être plus précis ?
                    Qu'est-ce qui s'affiche sur la page ?
                    Quelle est l'URL qui apparait dans la barre d'adresse de ton navigateur ?
                  2. Alors déjà, désolé pour les balises, ensuite l'adresse indiquée quand j'exécute la page c'est : "monsite/membre/upload.php" et le message qui est affiché c'est : "TEST !!!! (est-ce que ce message s'affiche sur ta page ??) Erreur ! Aucun Username défini !"
                2. Modérateur
                  On avance ...

                  La raison du Problème est simple tu (enfin.. ON ) a oublié d'activer les variables de session ..... (A faire DANS TOUTES TES PAGES ! )

                  ce qui donne :
                  
                  <?php
                  //affichage des erreurs PHP
                  error_reporting(E_ALL);
                  
                  // démarrage des SESSION "propre"
                  if(session_id() == '') {
                   session_start();
                  }
                  
                  //récupération des données :
                  $username = isset($_SESSION['username'])?$_SESSION['username']:NULL;
                  
                  
                  // dossier où sera déplacé le fichier
                  $content_dir = 'upload/'; 
                    
                  if($username){
                    if( isset($_POST['upload']) ) { // si formulaire soumis
                  
                  
                      if(isset($_FILES['fichier']['tmp_name'])){
                      $tmp_file = $_FILES['fichier']['tmp_name'];
                  
                      if( !is_uploaded_file($tmp_file) ) {
                          exit("Le fichier est introuvable");
                      }
                  
                      // on vérifie maintenant l'extension
                      $type_file = $_FILES['fichier']['type'];
                  
                      if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') && !strstr($type_file, 'png') ) {
                          exit("Le fichier n'est pas une image");
                      }
                  
                      // on copie le fichier dans le dossier de destination
                      $name_file = isset($_FILES['fichier']['name'])?$_FILES['fichier']['name']:NULL;
                  
                      if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )  {
                        exit("Impossible");
                      }else{  
                        // ICI tu places le code qui va insérer en BDD !
                        //par exemple :
                        $sql = "UPDATE users SET avatar = '$name_file' WHERE username = '$username'";
                        mysql_query($sql) or die('Requête invalide : ' . mysql_error() . " <br><br> REQUETE : <br>". $sql);
                        echo "Le fichier a bien été uploadé";
                      }  
                     }else{
                        echo " Erreur ! La variable FILES['fichier']['tmp_name'] n'existe pas !";
                     }  
                    }else{
                      echo " Erreur ! La variable 'upload' n'existe pas !";
                    }
                  }else{
                   echo " Erreur ! Aucun Username défini ! ";
                  }
                  
                  
                  1. Sa me donne : Requête invalide : Access denied for user ''@'localhost' (using password: NO)

                    REQUETE :
                    UPDATE users SET avatar = 'images.jpg' WHERE username = 'Killer'
                    Donc faut que je le fasse connecté a la BDD
                3. Voilà j'ai réussi :) voilà le resultat affiché : Le fichier a bien été uploadé
                  et donc voici le code final pour les interéssés :
                  <?php
                  //affichage des erreurs PHP
                  error_reporting(E_ALL);
                  
                  // démarrage des SESSION "propre"
                  if(session_id() == '') {
                   session_start();
                  }
                  
                  //récupération des données :
                  $username = isset($_SESSION['username'])?$_SESSION['username']:NULL;
                  
                  
                  // dossier où sera déplacé le fichier
                  $content_dir = 'upload/'; 
                    
                  if($username){
                    if( isset($_POST['upload']) ) { // si formulaire soumis
                  
                  
                      if(isset($_FILES['fichier']['tmp_name'])){
                      $tmp_file = $_FILES['fichier']['tmp_name'];
                  
                      if( !is_uploaded_file($tmp_file) ) {
                          exit("Le fichier est introuvable");
                      }
                  
                      // on vérifie maintenant l'extension
                      $type_file = $_FILES['fichier']['type'];
                  
                      if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') && !strstr($type_file, 'png') ) {
                          exit("Le fichier n'est pas une image");
                      }
                  
                      // on copie le fichier dans le dossier de destination
                      $name_file = isset($_FILES['fichier']['name'])?$_FILES['fichier']['name']:NULL;
                  
                      if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )  {
                        exit("Impossible");
                      }else{  
                        // ICI tu places le code qui va insérer en BDD !
                        //par exemple :
                        $sql = "UPDATE users SET avatar = '$name_file' WHERE username = '$username'";
                        mysql_query($sql, $dblink) or die('Requête invalide : ' . mysql_error() . " <br><br> REQUETE : <br>". $sql);
                        echo "Le fichier a bien été uploadé";
                      }  
                     }else{
                        echo " Erreur ! La variable FILES['fichier']['tmp_name'] n'existe pas !";
                     }  
                    }else{
                      echo " Erreur ! La variable 'upload' n'existe pas !";
                    }
                  }else{
                   echo " Erreur ! Aucun Username défini ! ";
                  }
                  1. Modérateur
                    Je ne vois pas de différence avec le code que je t'ai donné.
                    Par contre.. oui il faut ajouter la connexion à la BDD.

                    Pour cela, je t'invite à mettre ton script de connexion à la BDD dans un fichier.. puis à l'inclure au début de ton script ( de préférence avec un REQUIRE_ONCE )

                    PS: Si la question est résolue..
                    Merci de ne pas oublier de clôturer le sujet
                    (en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)

                    Cordialement,
                    Jordane
                  2. Parcontre l'image n'est pas affiché, voilà le code que j'ai mis si tu peux me corrigé stp ^^ :
                     <?php 
                     include_once('../membre/lol.php'); // Inclusion de la connexion à MySQL
                     
                      $sql = 'SELECT avatar FROM users WHERE username="'.$_SESSION['username'].'"';
                      $query = mysql_query($sql, $dblink); // Envoi de la requête à la base de données
                      
                      $avatar = $fetch['avatar'];
                    ?>
                     <img src ="../membre/upload/<?php $avatar; ?>" height="200" width="200" alt="avatar">
                  3. Modérateur
                    @KearnenElle vient d'où ta variable $fetch ??

                    Normalement... il te faut faire une boucle :
                    <?php 
                     require_once('../membre/lol.php'); // Inclusion de la connexion à MySQL
                     
                      $sql = 'SELECT avatar FROM users WHERE username="'.$_SESSION['username'].'"';
                      $query = mysql_query($sql, $dblink); // Envoi de la requête à la base de données
                      
                    while ($fetch= mysql_fetch_assoc($query)) {
                     $avatar = $fetch['avatar'];
                     echo "<img src ='../membre/upload/$avatar' height='200' width='200' alt='avatar'>";
                    }
                    
                    
                  4. Merci de m'avoir corrigé, c'est bon l'image est bien affiché, tu es le meilleur :) Et merci d'avoir consacré autant de temps pour m'aidé :) !
                  5. Modérateur
                    :-)

                    Si la question est résolue..
                    Merci de ne pas oublier de clôturer le sujet
                    (en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)

                    Cordialement,
                    Jordane
                4. Désolé je suis pas trés fort, tu aurais skype pour parler sa sera plus simple ?
                  1. Modérateur
                    Désolé .. mais
                    1 - Je ne donne pas mon Skype à n'importe qui (sans connaitre...)
                    2 - Le FORUM est là pour aider ... pas besoin de chat pour réussir
                  2. D'acc pas de problème sinon c'est lequel le code que tu veux ?