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 :

suppressios images (checkbox + unlink)


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    noobies
    Inscrit en
    Décembre 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : noobies

    Informations forums :
    Inscription : Décembre 2014
    Messages : 103
    Par défaut suppressios images (checkbox + unlink)
    Bonjour

    j'affiche mes photos via un tableau (sans bdd)
    j'ai crée une panneau afin de pouvoir effacer certaines images en mettant un checkbox sous chaque photo



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if (isset($tableau[$i])) {
        echo '<td ><a rel="example_group" href="phototeam/'.$rep.'/pics/' , $tableau[$i] , '" ><img style="margin:5px;border:1px solid #ccc;padding:2px;" src="phototeam/'.$rep.'/mini.php?f=' , $tableau[$i] , '" alt="Ne peut pas etre affiché" width="100px" height="70px"/></a>
    	<br/>
    	<label><font style="font-size:11px;" ><img src="images/icone_supprimer.png" align="absmiddle" style="margin-top:-2px;"> Effacer la photo</font> <input class="input" type="checkbox" name="supp[]" value="'.$tableau[$i].'"></label>
    	<input type="hidden" name="tr" value="'.$rep.'">
    	</td>';
         }
    	 if($i%$nbcol==($nbcol-1)) echo '</tr>';
    	}
    et j'ai donc ma page d'effacement :

    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
    <?php
     
    $rep = $_GET['rep'];
    $valeur = $_GET['valeur'];
     
    $dossier_traite = 'phototeam/'.$rep.'/pics/';
     
    $repertoire = opendir($dossier_traite); // On définit le répertoire dans lequel on souhaite travailler.
     
    while (false !== ($fichier = readdir($repertoire))) // On lit chaque fichier du répertoire dans la boucle.
    {
    $chemin = $dossier_traite.$valeur; // On définit le chemin du fichier à effacer.
     
    // Si le fichier n'est pas un répertoire…
    if ($fichier != ".." AND $fichier != "." AND !is_dir($fichier))
           {
           unlink($chemin); // On efface.
           }
    }
    closedir($repertoire);
     
    ?>
    ca fonctionne (en me mettant une erreur sur le chemin mais l'image s'efface bien, par contre je n'arrive pas a trouver comment faire si je séléctionne plusieur photos a supprimer,
    dans mon cas j'en ai qu'une qui s'efface, j'imagine qu'il faut que je récupere les valeur dans un tableau
    comme j'ai fais pour valider (avant de supprimer definitivement)

    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
     
    <?php
    $rep = $_POST['tr'];
     
    if(isSet($_POST["go"]))
    {
     
       foreach($_POST["supp"] as $valeur) 
       echo '<td ><a rel="example_group" href="phototeam/'.$rep.'/pics/' , $valeur , '" ><img style="margin:5px;border:1px solid #ccc;padding:2px;" src="phototeam/'.$rep.'/mini.php?f=' , $valeur , '" alt="Ne peut pas etre affiché" width="100px" height="70px"/></a>
    	
    	</td>';
     
     
     
    }
    ?>
    <a href="valide.php?rep=<?php echo $rep;?>&valeur=<?php echo $valeur ;?>" onclick="window.open(this.href, 'valide', 'height=1, width=1, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, directories=no, status=no'); return(false);">Valider la suppression</a></b>
    donc ce que je cherche a faire c'est que unlink m'efface toutes les photos séléctionés sachant quelles seront dans le meme répertoire

    merci

  2. #2
    Membre confirmé
    Homme Profil pro
    noobies
    Inscrit en
    Décembre 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : noobies

    Informations forums :
    Inscription : Décembre 2014
    Messages : 103
    Par défaut
    donc j'arrive a envoyer par GET (url)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    href="valide.php?rep=<?php echo $rep;?>&valeur=<?php foreach($_POST['supp'] as $valeur)  echo $valeur.',' ;?>"
    les données,

    maintenant comment supprimer les élément selectionnés ?

    valide.php

    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
    <?php
     
    $rep = $_GET['rep'];
     
    $valeur = $_GET['valeur'];
     
    echo $valeur;
     
     
     
     
    $dossier_traite = 'phototeam/'.$rep.'/pics/';
     
    $repertoire = opendir($dossier_traite); // On définit le répertoire dans lequel on souhaite travailler.
     
    while (false !== ($fichier = readdir($repertoire))) // On lit chaque fichier du répertoire dans la boucle.
    {
    $chemin = $dossier_traite.$valeur; // On définit le chemin du fichier à effacer.
     
    // Si le fichier n'est pas un répertoire…
    if ($fichier != ".." AND $fichier != "." AND !is_dir($fichier))
           {
           unlink($chemin); // On efface.
           }
    }
    closedir($repertoire); // Ne pas oublier de fermer le dossier ***EN DEHORS de la boucle*** ! Ce qui évitera à PHP beaucoup de calculs et des problèmes liés à l'ouverture du dossier.
     
    ?>
    erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    2016-01-02_183721.png,new.png,
    Warning: unlink(phototeam/photoclientssorties/pics/2016-01-02_183721.png,new.png,): No such file or directory in /web/jokerbaits1/teamjoker/valide.php on line 30
     
    Warning: unlink(phototeam/photoclientssorties/pics/2016-01-02_183721.png,new.png,): No such file or directory in /web/jokerbaits1/teamjoker/valide.php on line 30
     
    Warning: unlink(phototeam/photoclientssorties/pics/2016-01-02_183721.png,new.png,): No such file or directory in /web/jokerbaits1/teamjoker/valide.php on line 30
    merci

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    href="valide.php?rep=<?php echo $rep;?>&valeur=<?php foreach($_POST['supp'] as $valeur)  echo $valeur.',' ;?>"
    c'est pour rire, ou quoi ?
    Ca n'a point de bon sens ! Tabernacle !

    => puisque le formulaire est en method="POST", récupère directement les $_POST dans le fichier de traitement !

    Et là, avec le foreach, tu peux supprimer chaque fichier sélectionné, puisque SEULES les cases COCHEES sont envoyées dans le $_POST de la checkbox;

Discussions similaires

  1. Supprimer image avec unlink
    Par hightone1999 dans le forum Langage
    Réponses: 0
    Dernier message: 24/07/2012, 12h03
  2. Suppression d'image avec unlink
    Par bernard26000 dans le forum Langage
    Réponses: 2
    Dernier message: 09/09/2007, 17h19
  3. Erreur unlink sur une image
    Par V_R46 dans le forum Langage
    Réponses: 3
    Dernier message: 27/07/2006, 12h00
  4. Grid avec CheckBox, Images, ...
    Par xenos dans le forum Delphi
    Réponses: 6
    Dernier message: 04/07/2006, 11h54

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