Systeme d'avatar

Résolu
Kearnen Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
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+ :)
A voir également:

16 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

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.


0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Voici un exemple d'upload de fichier :
https://www.commentcamarche.net/faq/889-php-upload-de-fichiers

ou encore :
http://phpcodeur.net/articles/php/upload
0
Kearnen Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   1
 
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

.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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...

0
Kearnen Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   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 ?
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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 )
0
Kearnen Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   1 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Je sais pas faire sa, si tu pouvais m'aider :/
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

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

0
Kearnen Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   1
 
Tiens voilà :
mysql_connect('', '', '');
mysql_select_db('');

Je me reconnecte demain la je deco donc a demain si t'es toujours là :)
0
Kearnen Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   1
 
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

.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
0
Kearnen Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   1
 
Quand j'essaie sa me dit : Erreur ! Aucun user_id défini
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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

0
Kearnen Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   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
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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.
0
Kearnen Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   1
 
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 ! ";
}

?>
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
.. et quelle est la structure de la table ?
0
Kearnen Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   1
 
id, username, prenom, password, email, avatar, signup_date, region, friends Voilà
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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;

0
Kearnen Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   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 !
.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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 ?
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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 ?
0
Kearnen Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   1
 
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 !"
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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 ! ";
}

0
Kearnen Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   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
0
Kearnen Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   1
 
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 ! ";
}
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
0
Kearnen Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   1
 
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">
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > Kearnen Messages postés 36 Date d'inscription   Statut Membre Dernière intervention  
 
Elle 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'>";
}

0
Kearnen Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   1
 
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é :) !
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
:-)

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
0
Kearnen Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   1
 
Désolé je suis pas trés fort, tu aurais skype pour parler sa sera plus simple ?
-1
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
0
Kearnen Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   1
 
D'acc pas de problème sinon c'est lequel le code que tu veux ?
0