Voilà j'ai un souci avec mes fichiers car je n'arrive pas a supprimer mes répertoire.
Je n'utilise pas de base sql pour la gestion de mes repertoires
Je vous donne mes 3 fichiers de mon espace admin ( index ,supprimer et add )
index:
<?php
include 'inc_haut_page.php';
echo '<h1> Créer une galerie : </h1>';
echo '<form action="add_galerie.php" enctype="multipart/form-data" method="post">';
echo 'Nouveau dossier: <input type="text" name="new_gal" size="50" /><br />';
echo '<input type="submit" name="Valider" value="Valider" />';
echo '</form>';
echo '<h1> Ou choisir une galerie :</h1>';
$dir = "../galeries/";
// On vérifie si le dossier existe bien
if (is_dir($dir))
{
echo '<table>';
echo '<tr><th>Galerie</th><th>Supprimer</th><th>Renommer</th></tr>';
// On enregistre les entrées du dossier dans la variable entree
$entree = opendir($dir);
// boucle pour lister tout les éléments du dossier
while (($file = readdir($entree)) !== false)
{
// on affiche que les dossiers et pas les dossiers racines (.) et (..)
if (is_dir($dir . $file) && $file !="." && $file !="..")
{
// on crée un tableau avec le résultat en supprimant les 2 premiers caracteres (numéro du repertoire)
echo '<tr>';
echo '<td><a href="galerie.php?galerie='.$file.'/'.'">'.substr($file,2).'</a></td>';
echo '<td><a href="suppr_galerie.php?galerie='.$file.'/'.'">Supprimer</a></td>';
echo '<td><a href="ren_galerie.php?galerie='.$file.'/'.'">Renommer</a></td>';
echo '</tr>';
}
}
closedir($entree);
}
echo '</table>';
include 'inc_bas_page.php';
?>
supprimer:<?php
/**
@return boolean true si le repertoire $dir et vide, false sinon.
@param string $dir Nom du repertoire a inspecter.
@desc Verifie si un repertoire est vide.
**/
function is_empty($dir)
{
$handle = @opendir($dir);
@readdir($handle);
@readdir($handle);
if (false != @readdir($handle)) return false;
else return true;
}
/**
@return -
@param string $dir Nom du repertoire a effacer.
@desc Efface entierement un repertoire. Necessite la fonction is_empty().
**/
function rm_tree($dir)
{
if ("/" == substr($dir,strlen($dir)-1,1)) $dir = substr($dir,0,strlen($dir)-1);
if (false == file_exists($dir))
{
include 'inc_haut_page.php';
echo "<font color=\"#FF0000\">Erreur : '".$dir."' n'existe pas.</font><br>\n";
echo '<a href="index.php">Retour à la galerie</a>';
include 'inc_bas_page.php';
return;
}
if (is_empty($dir)) // Si dossier vide
{
rmdir($dir);// Efface le dossier
return;
}
// Sinon parcours le dossier
$handle = @opendir($dir);
@readdir($handle);
@readdir($handle);
while ($file = @readdir($handle))
{
$fichier= $file;
$file = $dir."/".$file;
if (is_dir($file)) // Si c'est un sous-dossier
{
if (is_empty($file)) rmdir($file); // Si sous-dossier vide, supprime le dossier
else rm_tree($file); // Si sous-dossier non vide, lance la fonction rm_tree pour effacer ce qu'il contient
}
else
{
unlink($file); // Si c'est un fichier efface le fichier
// modifie la variable photo pour l'adapter à la suppression du commentaire associé
$photo='c_'.substr($fichier,0,-4);
// Crée l'objet domdocument
$doc = new DomDocument('1.0','utf-8');
// Charge le ui.xml dans le domdocument
$doc->load('../ui.xml');
// récupère l'élément racine du document
$contenu = $doc->documentElement;
// cherche le commentaire de la photo
$comment = $contenu->getElementsByTagName($photo)->item(0);
// Vérifie si le commentaire existe
if (!empty($comment))
{
// Supprime le commentaire
$supprim = $contenu->removeChild($comment);
// Sauvegarde le nouveau commentaire dans le fichier .xml
$doc->save('../ui.xml');
}
}
}
rmdir($dir); // Efface le sous-dossier vidé
}
$nom_galerie='../galeries/'.addslashes($_GET['galerie']);
rm_tree($nom_galerie);
header('Location: index.php');
?>
et en cas de besoin voici mon fichier add:
<?php
$dir = "../galeries/";
$galerie='00'.addslashes($_POST['new_gal']);
if (!is_dir($dir.$galerie) && !empty($galerie) && $galerie != '00')
{
//Fonction pour enlever les caractères non standards
function enlever_accents($dest_fichier){
$dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ/',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy/');
//remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z\/0-9]+)/i', '_', $dest_fichier);
return $dest_fichier;
}
$galerie = enlever_accents($galerie);
mkdir($dir.$galerie, 0755);
chmod($dir.$galerie, 0755);
}
header('Location: index.php');
?>
Merci d'avance pour votre aide