PHP

Affichage d'une photo supprimée

Non Résolu

Bonjour a tous,

Voila je rencontre un petit problème avec mon code.


J'ai utiliser un système d'upload de photo pour que sur mon site les utilisateur change leurs photos de profile, donc la photo s'envoie elle recupere l'id de l'utilisateur et la renome ainsi avec l'extension jusque la tout vas bien, dans me code je fait pour quelle s'affiche ect tout fonctionne parfaitement.


Voila le code pour la page d'envoie de la photo + le morceaux d'html

avatar.php


<?php
require 'inc/functions.php';
logged_only();
   if(!empty($_POST['avatarpost'])){
                if(!empty($_FILES['avatar']['name'])){
                    $id_avatar = $_SESSION['auth']->id;
                    $tailleMax = 12097152;
                    $extensionValides = array('jpg', 'jpeg', 'gif', 'png');
                    if($_FILES['avatar']['size'] <= $tailleMax){
                        $extensionUpload = strtolower(substr(strrchr($_FILES['avatar']['name'], '.'), 1));
                        if(in_array($extensionUpload, $extensionValides)){
                            $chemin = "membres/avatars/".$id_avatar.".".$extensionUpload;
                            $resultat = move_uploaded_file($_FILES['avatar']['tmp_name'], $chemin);
                            if($resultat){
                                require_once 'inc/db.php';
                                $updateavatar = $pdo->prepare('UPDATE users SET avatar = :avatar, avatar_test = :id WHERE id = :id');
                                $updateavatar->execute(array(
                                    'avatar' => $id_avatar.".".$extensionUpload,
                                    'id' => $id_avatar
                                ));
                                header('Location: logbio.php');
                            }else{ $_SESSION['flash']['red2'] = "Erreur durant l'importation de votre photo"; }
                        }else{ $_SESSION['flash']['red2'] = "Votre photo de profil doit être au format jpg, jpeg, gif ou png."; }
                    }
                }else{ $_SESSION['flash']['red2'] = "Pas de photo selectionner."; }
            }

?>

                <form action="" method="post" enctype="multipart/form-data"><div class="file-data"><input type="file" name="avatar" class="upload-file button bg-highlight button-full shadow-huge round-small button-xs "><p class="upload-file-text">Charger ma photo de profil</p><input type="submit" name="avatarpost" class="upload-file button bg-highlight button-full shadow-huge round-small button-xs "><p class="upload-file-text">Mettre a jour</p></div><br></form>


Et voila le code de la page qui recupere affiche la photo avec le petit bout d'html

profile.php


<?php
include('bd/connexionDB.php'); 

    $id = (int) htmlentities(trim($_GET['id']));

    if(!is_int($id) || $id == 0 || $id == $_SESSION['id']){
        header('Location: profile.php?id='.$_SESSION['id']);
        exit;
    }
    $afficher_profil = $DB->query("SELECT * FROM users WHERE id = ?", array($id));

    $afficher_profil = $afficher_profil->fetch();

    if(!isset($afficher_profil['id'])){
        header('Location: utilisateurs.php');
        exit;
    }


?>

<img class="caption-bg" src="membres/avatars/<?= $afficher_profil['avatar'] ?>" style="width:100%; height:auto;" >


Mais quand l'utilisateur veux update sa photo de profile, si l'extention de sa photo (.jpg) est la meme que la précédente par exemple l'id 11 donc 11.jpg la photo vas changer mais pas le nom donc sur le serveur la photo change bien le nom reste le meme jusque la normal,


Mais au moment de l'afficher c'est toujours l'ancienne photo et non la nouvelle qui s'affiche, je ne comprend pas pourtant l'ancienne photo n'existe plus et la nouvelle est bien dans le serveur avec le bon nom je ne comprend pas si vous avez des idées, ou elle peut etre stocker pendant tout ce temp car sur tout les navigateur different, téléphone ect sa reste l'ancienne photo alors quelle n’existe plus... merci

1129 vues
09 mars 2020 à 16:04 (Édité)
Cette pub permet au site de vivre ...

15 commentaires

Re:


Il faudrait que tu demandes à l'assistance de LWS pour savoir s'il est possible de paramétrer cela dans ton compte...

D'autre part, on va analyser ton code... Reviens sur ton topic après avoir lu l'article 😉

Non j'ai pas suivie cet article ! quand je rentre je le regarde plus en profondeur sa a l'air plus complet que ce que j'ai ! tu as raison c'est bien un problème de cache j'ai le petit bouton purge cache sur le cpanel je le purge 2/3fois la photo apparais bien mais comment rendre la purge de ces cache automatique a chaque modification dans les fichiers

Re:


Très bien ! 😉

Je penses plus à un problème de cache si tu dis que l'image est supprimé mais toujours afficher sur l'interface de ton site... Ce problème est récurrent chez OVH...

As-tu suivis cet article de formation ? 🤔

Salut @Jerem971 , oui bien en ligne, je suis héberger chez LWS

Hello @bykertix,


Quand tu dis "serveur" c'est bien un serveur en ligne et non en local ? 🤔

Si oui, quel est le nom de ton hébergeur ? 🤔

Cette pub permet au site de vivre ...
1
2