Page 1 sur 1

Récup chemin image, affichage, no refresh

Posté : 24 juin 2019, 09:50
par elvyn
Bonjour,
Désolé pour ce titre un peu douteux mais manque de place, cependant, voilà mon soucis. Ici je cherche à récupérer le chemin d'une image que j'insère dans ma bdd pour ensuite afficher mon image (il y a déjà une erreur ici). Mais mon code ne permet que d'avoir un seul chemin d'image, ce qui fait que lorsque que je refresh ma page et bien le site enlève l'image et me dit qu'elle existe déjà..
if (file_exists($image)) 
        {
            echo "Cette image existe déjà.";
            $uploadOk = 0;
        }
if (move_uploaded_file($_FILES["image"]["tmp_name"], $image))
            {
                $sql = 'UPDATE cheval_nom SET image = "'.$_FILES["image"]["name"].'" WHERE id = '.$_GET['id'];
                $req = $bdd->prepare($sql);
                $req->execute();
                $img=$req->fetch();
                ?>
                <img src="/poney/img/<?php echo $img['image'] ?>"/><?php
            } 

Re: Récup chemin image, affichage, no refresh

Posté : 24 juin 2019, 13:01
par Saian
Rien de plus logique non ? Il faut que tu requêtes à nouveau le chemin de l'image avec un SELECT sous le if si tu veux la ré-afficher.

Re: Récup chemin image, affichage, no refresh

Posté : 24 juin 2019, 14:56
par elvyn
Voilà ce que j'ai :
N'y aurait-il pas un autre moyen de le rendre plus efficace ?
PS : Il fonctionne
        <form method="post" enctype="multipart/form-data">
            <label for="cheval">Cheval :</label>    
            <input type="file" name="image" />
            <input type="submit" value="Modifier" />
        </form>
        <?php
        if(isset($_POST["submit"])) 
        {
            $dos = $_SERVER['DOCUMENT_ROOT']."/poney/img/";
            $image = $dos.$_FILES["image"]["name"];
            simpleName($image);
            $uploadOk = 1;
            $type = strtolower(pathinfo($image,PATHINFO_EXTENSION));

            $check = getimagesize($_FILES["image"]["tmp_name"]);
            if($check !== false) 
            {
                echo " Image - " . $check["mime"] . ".";
                $uploadOk = 1;
            } 
            else 
            {
                echo " Ce n'est pas une image.";
                $uploadOk = 0;
            }
            if (file_exists($image)) 
            {
                echo " Cette image existe déjà.";
                $uploadOk = 0;
            }
            if ($_FILES["image"]["size"] > 5000000) 
            {
                echo " Image trop grande";
                $uploadOk = 0;
            }
            if($type != "jpg" && $type != "png" && $type != "jpeg") 
            {
                echo " Seulement les images de type JPG, PNG et JPEG sont autorisées.";
                $uploadOk = 0;
            }
            if ($uploadOk == 0) 
            {
                echo " Image non téléchargée";
            }
            
        }
        else
        {
            $dos = $_SERVER['DOCUMENT_ROOT']."/poney/img/";
            $image = $dos.$_FILES["image"]["name"];
            simpleName($image);
            $uploadOk = 1;
            $type = strtolower(pathinfo($image,PATHINFO_EXTENSION));
            
            if (move_uploaded_file($_FILES["image"]["tmp_name"], $image))
            {               
                $sql = 'UPDATE cheval_nom SET image = "'.$_FILES["image"]["name"].'" WHERE id = '.$_GET['id'];
                $req = $bdd->prepare($sql);
                $req->execute();
            }
        }       
        $sql1 = 'SELECT image FROM cheval_nom WHERE id = '.$_GET['id'];
        $req1 = $bdd->prepare($sql1);
        $req1->execute();
        $img = $req1->fetch();
        ?>
        <img src="/poney/img/<?php echo $img['image']?>"/>

Re: Récup chemin image, affichage, no refresh

Posté : 24 juin 2019, 15:28
par Saian
L'update de l'image ne devrait-il pas être dans le if(isset($_POST["submit"])) et le select dans le else ?

Re: Récup chemin image, affichage, no refresh

Posté : 24 juin 2019, 15:35
par elvyn
Nan, ça ne fonctionne pas, tant pis je vais laisser comme ça ^^