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

Langage PHP Discussion :

Effacer une image


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2017
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2017
    Messages : 80
    Par défaut Effacer une image
    Bonjour, j'ai suivi un tuto, en local, et tout ce passe bien sauf sur un point, et d’ailleurs qu'il n'explique pas dans ses videos....

    En gros, j'ai une liste d'items classé par nom, description, prix, categories et actions, je peux via une autre page modifier les champs comme bon me semble, chaque items possèdent aussi une photo, que je peux changer, ou bien la supprimer.

    Donc, quand je clique sur supprimer, il me redirige vers une page avec en URL l'id de la ligne dans la base de donnée, de type :
    alors ça retire bien l'item de son emplacement sur le site, ainsi que sur la base de donnée, mais le problème c'est qu'il me garde l'image dans le dossier ../images/nomdelimage.jpg

    ma commande qui devrait l'effacer est comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unlink('../images/' . $image . '.' . jpg);
    Il ne trouve donc forcement pas la variable $image, et c'est de ça que j'ai besoin pour pouvoir supprimer l'image dans le dossier, en gros la variable $image retournerai 18.jpg (la photo qui est dans ma base de donnée dans le champ 'image')

    Le problème c'est que je ne sais pas comment récuperer le champ "image" de ma base de donnée, et donc l'image (18.jpg par exemple) correspondant à l'id (donc l'id qui apparait dans l'URL quand je vais sur ma page supprimer.

    Pouvez vous m'aider ?

    Voici la page delete.php , je ne vais pas mettre les autres pages car il y en a trop, sauf si vous en avez besoin.

    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
    <?php 
    session_start();
    require 'database.php';
    include '../flash.php';
     
    if(!empty($_GET['id'])) {
    	$id = checkInput($_GET['id']);
    }
     
    if(!empty($_POST)) {
    	$id = checkInput($_POST['id']);
    	$db = Database::connect();
    	unlink('../images/' . $image . '.' . jpg);
    	$statement = $db->prepare("DELETE FROM items WHERE id = ?");
    	$statement->execute(array($id));
    	Database::disconnect();
    	setFlash('Votre item à bien été supprimé !');
    	header('Location: index.php');
    }
    //var_dump('../images/' . $image . '.' . jpg);
     
    function checkInput($data) {
    	$data = trim($data);
    	$data = stripslashes($data);
    	$data = htmlspecialchars($data);
    	return $data;
    }
     
    ?>
     
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <title>Bootstrap Example</title>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
      <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
      <link rel="stylesheet" href="../css/style.css">
      <link href='http://fonts.googleapis.com/css?family=Holtwood+One+SC' rel='stylesheet' type='text/css'>
     
     
    </head>
    <body>
     
     
    	<h1 class="text-logo"><span class="glyphicon glyphicon-cutlery"></span> Burger Code <span class="glyphicon glyphicon-cutlery"></span></h1>
    		<div class="container admin">
    			<div class="row">
    					<h1><strong>Supprimer un item ?</strong></h1>
    					<br>
    					<form class="form" role="form" action="delete.php" method="POST"> <!-- ACTION SUR LA MEME PAGE -->
    						<input type="hidden" name="id" value="<?= $id ?>" />
    						<p class="alert alert-warning">Etes vous sur de vouloir supprimer ?</p>
    					<div class="form-actions">
    						<button type="submit" class="btn btn-warning"></span> OUI</button>
    						<a href="index.php" class="btn btn-default"></span> NON</a>
    					</div>
    					</form>
    			</div>
    		</div>
     
    </body>
    </html>

  2. #2
    Membre expérimenté Avatar de Amélie Ladoque
    Inscrit en
    Novembre 2004
    Messages
    290
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 290
    Par défaut
    "Problème" est trop vague.
    Quel est le problème exactement ?
    Récupérer le nom d'une image sur le disque ou effacer l'image ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2017
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2017
    Messages : 80
    Par défaut
    Bonjour,
    Récupérer l'image et le nom c'est bon, le seul problème c'est si je veux par exemple l'effacer de ma base de donné e , elle ne va pas s'effacer du dossier image..... Et c'est ce que je cherche a faire....

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2017
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2017
    Messages : 80
    Par défaut
    Quoi que... A confirmer depuis je me suis amélioré dans tout ça.... Il faut que je me repenche sur la question avec cette histoire de unlink.... Ça ne doit pas être bien compliqué....

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

    il faut d'abord corriger la syntaxe !!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	unlink('../images/' . $image . '.' . jpg);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	unlink('../images/' . $image . '.jpg');
    Mais comment se fait-il que le nom de l'image soit enregistré en BDD SANS extension ???

    Réponse :
    ...en gros la variable $image retournerai 18.jpg ...
    Par conséquent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	unlink('../images/' . $image);
    Reste à vérifier que ce chemin relatif soit correct...

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2017
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2017
    Messages : 80
    Par défaut
    Bonjour,

    J'ai un peu avancé, voici mon nouveau 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
    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
    72
    73
    74
     
    <?php 
    session_start();
    include 'db/database.php';
    include 'includes/chemins.php';
     
     
     
    if(!empty($_GET['id'])) {
    $id = checkInput($_GET['id']);
    }
     
     
    if(!empty($_POST)) {
    	$errors = array();
    	$id = checkInput($_POST['id']);
    	$reponse = $db->query('SELECT image FROM items');
    	$donnees = $reponse->fetch();
    	unlink(IMAGES . $donnees->image);
    	$statement = $db->prepare("DELETE FROM items WHERE id = ?");
    	$statement->execute(array($id));
    	$_SESSION['flash']['success'] = 'Votre photo à bien été supprimée.';
    	header("Location: http://localhost:8090/mescreations/admin.php?id=". $_SESSION['id'] .'#1');
    }
    // var_dump(IMAGES . $donnees->image);
     
     
     
     
    function checkInput($data) {
    	$data = trim($data);
    	$data = stripslashes($data);
    	$data = htmlspecialchars($data);
    	return $data;
    }
     
    ?>
     
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <title>Bootstrap Example</title>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
      <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
      <link rel="stylesheet" href="css/style.css">
      <link href='http://fonts.googleapis.com/css?family=Holtwood+One+SC' rel='stylesheet' type='text/css'>
     
     
    </head>
    <body>
     
    <?php include 'partials/header.php'; ?>
    <div class="wrapper">
    <h1 class="text-logo">Administration</h1>
    		<div class="admin">
    			<div class="row">
    					<h1><strong>Supprimer un item ?</strong></h1>
    					<br>
    					<form class="form" role="form" action="delete.php" method="POST"> <!-- ACTION SUR LA MEME PAGE -->
    						<input type="hidden" name="id" value="<?= $id ?>" />
    						<p class="alert alert-warning">Etes vous sur de vouloir supprimer ?</p>
    					<div class="form-actions">
    						<button type="submit" class="bouton bouton-attention"></span> OUI</button>
    						<a href="http://localhost:8090/mescreations/admin.php?id=<?php echo $_SESSION['id']; ?>#1" class="bouton bouton-view"></span> NON</a>
    					</div>
    					</form>
    			</div>
    		</div>
     
    </body>
    </html>
    J'ai créer un fichier chemins.php pour retourner plus facilement mon dossier, voici le 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
     
     
     
    <?php
     
    define('WWW_ROOT', dirname(dirname(__FILE__)));
     
    $directory = basename(WWW_ROOT);
    $url = explode($directory, $_SERVER['REQUEST_URI']);
    if(count($url) == 1) {
    	define('WEBROOT', '/');
    } else {
    	define('WEBROOT', $url[0] . 'mescreations/');
    }
     
    define('IMAGES', WWW_ROOT . DIRECTORY_SEPARATOR . 'images/');
    Maintenant un nouveau problème s'impose, quand je clique sur mon image pour la supprimer, alors elle disparait bien de la BDD, ainsi que de mon site, et maintenant, ça disparait aussi de mon dossier images, sauf que si je clique sur n'importe qu'elle image à supprimer, il me supprime tout le temps la première image du dossier.... sauriez vous comment régler ce problème ?....

    Cordialement.....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment effacer une image ?
    Par carlos587261 dans le forum Débuter
    Réponses: 5
    Dernier message: 13/10/2007, 10h41
  2. Effacer une image chargée dans un TImage
    Par Lalanne dans le forum C++Builder
    Réponses: 2
    Dernier message: 11/07/2007, 16h26
  3. Effacer une image
    Par MrMust dans le forum SDL
    Réponses: 12
    Dernier message: 26/03/2007, 18h09
  4. Effacer une image
    Par caneman dans le forum wxWidgets
    Réponses: 4
    Dernier message: 04/10/2006, 23h03
  5. effacer une image chargée ds TBitmap
    Par sony351 dans le forum C++Builder
    Réponses: 4
    Dernier message: 20/09/2004, 10h28

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