IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Gestion des images : Modification/Suppression des images d'une BDD depuis une page Web


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Création sites web
    Inscrit en
    Novembre 2016
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Création sites web

    Informations forums :
    Inscription : Novembre 2016
    Messages : 26
    Par défaut Gestion des images : Modification/Suppression des images d'une BDD depuis une page Web
    Bonjour,
    Je souhaite pourvoir gérer mes images : modification/suppression depuis une page web de la même façon que pour gérer des articles, mais je n'y arrive pas.....J'upload une image qui est enregistrée dans ma bdd et qui est envoyée vers un fichier. Je récupère les infos sous forme de liste, mais quand je veux récupérer l'image et sa légende pour les modifier je n'y arrive pas...
    J'ai débuger ma variable edit_id qui récupère bien les infos de la base de donnée, mais les infos se s'affichent pas, même pas la légende, si quelqu'un à compris mon charabia et peux 'aider.

    Sur ma page Adminimage, j'ai le formulaire pour uploader une image, j'ai la liste de toutes mes images également, voici le code :

    Pour mon formulaire avec le mode édition pour récupérer des données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    <?php
    require_once('../inc/functions.php');
    require_once('../inc/bdd.php');
     
    $images = getImages();
    ?>
    <?php
     
    //Enregistrement nouvelles images quand le mode édition est égal à 0
    $mode_edition = 0;
    //Modification d'images, on vérifie qu'il y a du contenu venant de la page adminimage
    if(isset($_GET['edit_image']) AND !empty($_GET['edit_image']))
    {
    //Edition articles : on va rechercher dans la table articles toutes les informations
      $mode_edition = 1;
      $edit_id = ($_GET['edit_image']);
      $req = $bdd->prepare('SELECT * FROM images WHERE id = ?' );
      $req->execute(array($edit_id));
     
      if($req->rowCount() == 1)
      {
        $edit_image = $req->fetch();
      }else{
        die('Erreur : l\'image concernée n\'existe pas...');
      }
    }
     
        // Initialize message variable
      $message = "";
     
      // Si le formulaire est envoyé
      if(isset($_POST['upload']))
    {       //on vérifie qu'il ne soit pas vide
           if(!empty($_FILES['image']) AND !empty($_POST['legende']))
            {
                // Get image name
                $image = $_FILES['image']['name'];
                // Get text
                $legende = $_POST['legende'];
                // image file directory
                $target = "../images/".basename($image);
     
                //Si le mode édition est à 0, c'est une nouvelle image à enregistrer
                if($mode_edition == 0){
                  //Requete préparée pour l'insertion dans la bdd
                    $insImage = $bdd->prepare('INSERT INTO images (image, legende) VALUES (?, ?)');
                    $insImage->execute(array($image, $legende));
     
                    //Si l'image uploader est déplacée vers le dossier cible  
                    if (move_uploaded_file($_FILES['image']['tmp_name'], $target))
                    {
                    $message = "Image enregistrée avec succès";
                    }else{
                    $message = "Une erreur s'est produite";
                    }
                }else{
     
                //Sinon c'est un mode édition = 1, qui est une modification d'image
                //On va chercher les données qui sont à modifier par une requête préparée
                $update = $bdd->prepare('UPDATE images SET image = ?, legende = ? WHERE id = ?');
                $update->execute(array($image, $legende, $edit_id));
     
                $message = 'Votre image à bien été mise à jour';
                }
          }else{
          $message = "Veuillez remplir tous les champs";  
        }
     
    }
     
    ?>
    Après j'affiche les infos de ma bdd avec images par ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <table>
                  <caption>Liste des images inclues dans la base de données</caption>
                    <tr>
     
                        <th>Nom du fichier</th>
                        <th>Image</th>
                        <th>Légende</th>
                        <th>Modifier</th>
                        <th>Supprimer</th>
                    </tr>
                        <?php
                        foreach ($images as $image): ?>
     
                        <tr>
     
                            <td><?= $image->image ?></td>
                            <td><img src="../images/<?php echo $image->image; ?>" alt="" /></td>
                            <td><?= $image->legende ?></td>
                            <td><?= $image->dateImage ?></td>
                            <td> <a href="adminimage.php?edit_image=<?= $image->id ?>">Modifier</a>
                                </td>
                            <td>
                                <a href="supprimer.php?edit_image=<?= $image->id ?>">Supprimer</a></td>
     
     
                        </tr>        
     
                    <?php endforeach; ?>    
     
                </table>
    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Dans les formulaires, j'ai un champ caché "traiter", qui vaut "ajouter", "modifier" ou "supprimer".
    Ça a l'avantage d'être clair.

    Et je les passe en POST.
    Ça évite qu'on les tripote dans l'URL...

    Ex. :
    Dernière modification par Invité ; 05/05/2018 à 07h36.

  3. #3
    Membre averti
    Femme Profil pro
    Création sites web
    Inscrit en
    Novembre 2016
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Création sites web

    Informations forums :
    Inscription : Novembre 2016
    Messages : 26
    Par défaut
    Bonjour jreaux62,
    Je ne savais pas ou chercher, je te remercie !! Je suis aller voir les liens, c'est plutôt compliqué pour moi. Je n'y connais rien en javascript et en php je n'ai jamais utilisé le try...catch, ni defined et j'aime bien comprendre ce que je fais, donc je vais essayer de me trouver des vidéos pour éplucher le tuto que tu as fais qui est très complet.

    Je laisse le post ouvert car j'aurai surement d'autres questions à te poser sur le sujet.

    Merci !

  4. #4
    Membre averti
    Femme Profil pro
    Création sites web
    Inscrit en
    Novembre 2016
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Création sites web

    Informations forums :
    Inscription : Novembre 2016
    Messages : 26
    Par défaut
    J'ai une première question, pourquoi préfère tu faire la validation du formulaire en javascrip, plutôt qu'en Php ?
    C'est juste pour comprendre s'il y a un intérêt particulier.
    Merci

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1. Une 1ère vérification est faite en JavaScript AVANT l'envoi. Elle est facultative.
    2. Une 2ème se fait APRES, en PHP. Elle est obligatoire.

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    L'avantage de la validation javascript, c'est qu'elle est faite à la volée et ne nécessite pas de recharger la page. C'est plus agréable pour l'utilisateur, parce que ça permet facilement d'afficher des jolis messages d'erreur et ça évite de perdre les données de formulaire (notamment si ton formulaire envoie des fichiers)
    L'inconvénient, c'est que le javascript est côté client, et donc peut facilement être désactivé dans le navigateur. D'où l'obligation de la validation en PHP.

    En résumé, la validation JS c'est pour améliorer l'expérience utilisateur, alors que la validation PHP c'est pour éviter les problèmes

    Au passage, on peut maintenant faire nativement un certain nombre de vérification avec HTML5, notamment avec les attributs required et pattern, voire avec les champs de type number, date ou email (et si ce n'est pas supporté par le navigateur, il y a toujours la validation PHP )
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. Réponses: 13
    Dernier message: 16/01/2015, 10h50
  2. suppression des caches me cause des problèmes
    Par sarahG dans le forum Langage
    Réponses: 4
    Dernier message: 09/05/2008, 15h39
  3. Gestion images miniatures depuis une BdD
    Par Clorish dans le forum Windows Forms
    Réponses: 10
    Dernier message: 28/11/2007, 09h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo