Bonjour, j'ai fait un systeme d'avatar mais dans le membre profil l'image s'affiche mais il ne reconnait pas l'image en tout cas il a un probleme pour s'afficher j'ai vérifié si il était bien dans la table de ma bdd et dans le dossier ou je stocke tous les photos de profils et tout es bon

voici le code (edition-profil) :

<?php
session_start();

$bdd = new PDO("mysql:host=localhost;dbname=espace_membre", "root", "");

if(isset($_FILES['avatar']) AND !empty($_FILES['avatar']['name'])) {
   $tailleMax = 2097152;
   $extensionsValides = array('jpg', 'jpeg', 'gif', 'png');
   if($_FILES['avatar']['size'] <= $tailleMax) {
      $extensionUpload = strtolower(substr(strrchr($_FILES['avatar']['name'], '.'), 1));
      if(in_array($extensionUpload, $extensionsValides)) {
         $chemin = "membre/avatar/".$_SESSION['id'].".".$extensionUpload;
         $resultat = move_uploaded_file($_FILES['avatar']['tmp_name'], $chemin);
         if($resultat) {
            $updateavatar = $bdd->prepare('UPDATE membre SET avatar = :avatar WHERE id = :id');
            $updateavatar->execute(array(
               'avatar' => $_SESSION['id'].".".$extensionUpload,
               'id' => $_SESSION['id']
               ));
            header('Location: membre-profil.php?id='.$_SESSION['id']);
         } else {
            $msg = "Erreur durant l'importation de votre photo de profil";
         }
      } else {
         $msg = "Votre photo de profil doit être au format jpg, jpeg, gif ou png";
      }
   } else {
      $msg = "Votre photo de profil ne doit pas dépasser 2Mo";
   }
}
?>
<html>
   <head>
      <title>TUTO PHP</title>
      <meta charset="utf-8">
   </head>
   <body>
      <div align="center">
         <h2>Edition de mon profil</h2>
         <form method="POST" action="" enctype="multipart/form-data">
            <div align="left">
            <label>Pseudo :</label>
            <input type="text" name="newpseudo" placeholder="Pseudo" value=""> <br /><br />
            <label>Mail :</label>
            <input type="text" name="newmail" placeholder="Mail" value=""> <br /> <br />
            <label>Mot de passe :</label>
            <input type="password" name="newmdp1" placeholder="Mot de passe"> <br /> <br />
            <label>Confirmer votre mot de passe :</label>
            <input type="password" name="newmdp2" placeholder="Confirmation de passe"> <br /> <br />
            <input type="file" name="avatar">
            <br /> <br />
            <input type="submit" value="Mettre a jour mon profil !">
         </form>
         </div>
         <?php
            if (isset($msg)) 
            {
               echo $msg;
            } 
            ?>
      </div>
   </body>
</html>

et le membre profil :

<?php
session_start();

$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '');

if(isset($_GET['id']) AND $_GET['id'] > 0) {
   $getid = intval($_GET['id']);
   $requser = $bdd->prepare('SELECT * FROM membre WHERE id = ?');
   $requser->execute(array($getid));
   $userinfo = $requser->fetch();
?>
<html>
   <head>
      <title>TUTO PHP</title>
      <meta charset="utf-8">
   </head>
   <body>
      <div align="center">
         <h2>Profil de <?php echo $userinfo['pseudo']; ?></h2>
         <br /> <br />
         <?php      
         if (!empty($userinfo['avatar'])) 
         {
         ?>
            <img src="membre/avatar<?php echo $userinfo['avatar'];?>" width="150">
         <?php
         }
         ?>
         <br /><br />
         Pseudo = <?php echo $userinfo['pseudo']; ?>
         <br />
         Mail = <?php echo $userinfo['mail']; ?>
         <br />
         <?php
         if(isset($_SESSION['id']) AND $userinfo['id'] == $_SESSION['id']) {
         ?>
         <br />
         <a href="editionprofil.php">Editer mon profil</a>
         <a href="deconnexion.php">Se déconnecter</a>
         <?php
         }
         ?>
      </div>
   </body>
</html>
<?php   
}
?>

7 réponses


Karim603
Auteur
Réponse acceptée

Merci pour vos réponses j'ai trouvé le probleme il manquait un slash

boostor73
Réponse acceptée

Salut, comment sont nommées tes photos, et quel est le chemin direct (sans prendre en compte php) vers cette image ?
a mon avis tu as un problème avec ton chemin vers l'image.

Inspecte le chemin qu'il essaye d'afficher via la console développeur de chrome/firefox et regarde si ça correspond bien a ce que tu attends.

Karim603
Auteur

Oui justement c'est que j'ai fait avant de poster ce topic et rien n'a changé

Salut, il manque l'extension de l'image (exemple : .png ou .jpg)
Remplace :

<img src="membre/avatar<?php echo $userinfo['avatar'];?>" width="150">

Par : (si tes images sont en png)

<img src="membre/avatar<?php echo $userinfo['avatar'];?>.png" width="150">
Karim603
Auteur

oui mais l'image n'est pas forcement .png il peut etre .jpg ou .gif , ma photo de profilest en .jpg j'ai essayé ton code t ça ne mache pas

Karim603
Auteur

c'est bon c'est résolu mais merci comme meme