Affichage photo profil

Flata

Flata Le 1 février 2017 à 19:32 (Édité le 25 janvier 2019 à 17:53)

Bonjour,
J'ai crée un upload photo profil en php via un code que j'ai trouvé sur le net mais le problème c'est que quand j'ajoute une photo profil elle ne s'affiche pas tout de suite il faut que je me deconnecte et me reconnect pour qu'elle s'affiche je ne sais pas d'ou ça vient le prob !!
TheOldNoob

TheOldNoob Le 2 février 2017 à 07:43

Salut l'ami,
Montre ton code, on va avoir du mal à deviné ^^
Balatharas

Balatharas Le 2 février 2017 à 14:21

A mon avis tu affiches l'image en faisant un echo d'une variable de SESSION. Donc il faut renouveler la session en se déconnectant puis se reconnectant.
Flata

Flata Le 2 février 2017 à 17:24

if(isset($_POST["valider"])) {
    
    $target_dir = "avatar/";
    $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
    $uploadOk = 1;
    $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File is not an image.";
        $uploadOk = 0;
    }
    // Check if file already exists
    if (file_exists($target_file)) {
       
         $_SESSION['flash']['danger']= 'Cette photo existe deja veuillez choisir une autre ';
        $uploadOk = 0;
    }
    // Check file size
    if ($_FILES["fileToUpload"]["size"] > 500000) {
        
        $_SESSION['flash']['danger']= 'La taille de votre photo dépasse la limite 5 Mo';
        $uploadOk = 0;
    }
    // Allow certain file formats
    if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
    && $imageFileType != "gif" ) {
     $_SESSION ['flash']['danger']= 'Veuillez insérer une photo en formats: JPG, JPEG, PNG & GIF ';
        $uploadOk = 0;
    }
    // Check if $uploadOk is set to 0 by an error
    if ($uploadOk == 0) {
        
       
    // if everything is ok, try to upload file
    } else {
        if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
            $_SESSION ['flash']['success']= 'Votre photo de profil a bien été chargé';
            
            $_SESSION['auth'];
            $req= $bdd -> prepare ('UPDATE membre SET avatar=:fileToUpload WHERE id=:id');
            $req -> execute(array('fileToUpload'=> $_FILES["fileToUpload"]["name"], 'id'=>  $_SESSION ['auth']->id ));
        } else {
            
           $_SESSION ['flash']['danger']= 'Erreur lors du transfert du fichier veuillez ressayer ';
        }
    }
}
Flata

Flata Le 2 février 2017 à 17:26

pour afficher la photo voila je code que j'utilise
<?php 
if(!empty($_SESSION['auth']->avatar)) { 
?>
<div class="avatar"> <img  class="avatar img-thumbnail img-responsive" src="avatar/<?= $_SESSION['auth']->avatar ?> "/> </div>
<?php } ?>
PaulLavieille

PaulLavieille Le 2 février 2017 à 18:33

Salut
<div class="avatar"> <img  class="avatar img-thumbnail img-responsive" src="avatar/<?= $_SESSION['auth']->avatar ?> 
Normal tu affiches avec le $_SESSION
Flata

Flata Le 2 février 2017 à 18:44

@PaulLavieille et ? il faut l'afficher comment ? alors 
Balatharas

Balatharas Le 3 février 2017 à 17:44

Mais c'est quand même pas dur de cliquer sur un piti bouton [CODE] !

Met ça dans ton code:
Début du fichier profil avec ton php:
$requser = $bdd->prepare('SELECT * FROM membre WHERE id = ?');
$requser->execute([$variableDelidDuMembreSurLeProfil]);
$usr = $requser->fetch();
Si l'URL de ta page de profil est comme ceci: localhost/TonProjet/profil.php?id=1
Alors remplace la variable $variableDelidDuMembreSurLeProfil par $get_id ou $_GET['id']
Ensuite dans la partie affichage de ton profil:
<div class="avatar"> <img  class="avatar img-thumbnail img-responsive" src="avatar/<?= $usr['avatar'] ?>

En tout cas c'est sympa d'avoir ignoré mon explication plus haut 😰
Flata

Flata Le 3 février 2017 à 19:09

Beignet mais non j'ai pas ignoré c'est juste que j'avais pas compris c'est tout dsl en tout cas merci bcp je vais essayer de voir ton code !!!!!
Balatharas

Balatharas Le 3 février 2017 à 21:03

Bah ok ta pas compris mais dis le alors jsuis pas devin ptdrr xD
Balatharas

Balatharas Le 5 février 2017 à 10:24

Alors c'est résolu ?
Flata

Flata Le 5 février 2017 à 16:02

Beignet Non l'url c'est simple http://localhost/php/profil  on a acces que qu'on la session démarre . et j'ai essayé ton code ça n'a pas marché 😭 .
En fait quand tu changes de photo de profil ça s'affiche pas tout de suite même quand j'actualise par contre quand je clique sur déconnecté et que je me reconnecte ça marche et la nouvelle photo s'affiche il me faut peut être un truc pour actualiser la session oubien se deconnecté et se reconnecté vite fait sans que l'utilisateur se rend compte un truc comme ça LOL je suis pas top en PHP . 
j'ai vu le tuto de primFx sur photo de profil j'ai esssayé d'intégrer son tuto sur mon fichier profil j'ai eu un problème que la photo ne se déplace pas dans le dossier avatar quand j'utilise la fonction move_uploaded_file du coup j'ai trouvé le code que j'utilise la il est pas top je trouve  
Balatharas

Balatharas Le 5 février 2017 à 18:09

Essaie de remplacer ça:
 <?php
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { 
            $_SESSION ['flash']['success']= 'Votre photo de profil a bien été chargé'; 
             
            $_SESSION['auth']; 
            $req= $bdd -> prepare ('UPDATE membre SET avatar=:fileToUpload WHERE id=:id'); 
            $req -> execute(array('fileToUpload'=> $_FILES["fileToUpload"]["name"], 'id'=>  $_SESSION ['auth']->id )); 
        } else { 
             
           $_SESSION ['flash']['danger']= 'Erreur lors du transfert du fichier veuillez ressayer '; 
        } 
?>
Par ça:
 if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { 
            $_SESSION ['flash']['success']= 'Votre photo de profil a bien été chargé'; 
             
            $_SESSION['auth']; 
            $req= $bdd -> prepare ('UPDATE membre SET avatar=:fileToUpload WHERE id=:id'); 
            $req -> execute(array('fileToUpload'=> $_FILES["fileToUpload"]["name"], 'id'=>  $_SESSION ['auth']->id )); 
     $_SESSION['auth']->avatar = /*la variable qui contient ton avatar*/;
        } else { 
             
           $_SESSION ['flash']['danger']= 'Erreur lors du transfert du fichier veuillez ressayer '; 
        } 
Relis bien le code que je te donne
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte