Supprimer un dossier en PHP

Ce forum aborde toutes les questions qu'un codeur ou webmaster pourrait se poser, et n'ayant aucun rapport direct avec phpBB.
Tout ce qui peut concerner la récupération des sessions de phpBB sur votre site, doit se faire dans cette section.

Modérateur: Equipe

Règles du forum
A lire impérativement : Règlement de phpBB-fr.com

Supprimer un dossier en PHP

Messagepar Giga_Boss » 17 Juil 2007 à 22:15

Salut, voile je cherche juste à vider un dossier et le supprimer ensuite :

Code: Tout sélectionner
chdir('../');
function effacer($fichier)
{
if (file_exists($fichier))
{
chmod($fichier,0777);
if (is_dir($fichier))
{
$id_dossier = opendir($fichier);
while($element = readdir($id_dossier))
{
if ($element != "." && $element != "..")
unlink($fichier."/".$element);
}
closedir($id_dossier);
rmdir($fichier);
}
else unlink($fichier);
}
}
if ( $HTTP_POST_VARS['ok'] == 'oui' )
{
	effacer($HTTP_POST_VARS['site'] . '/css');
	effacer($HTTP_POST_VARS['site'] . '/images');
	effacer($HTTP_POST_VARS['site'] . '/img');
	effacer($HTTP_POST_VARS['site'] . '/js');
	effacer($HTTP_POST_VARS['site'] . '/lang');
	effacer($HTTP_POST_VARS['site']);
	rmdir($HTTP_POST_VARS['site'] . '/css/');
	rmdir($HTTP_POST_VARS['site'] . '/images/');
	rmdir($HTTP_POST_VARS['site'] . '/img/');
	rmdir($HTTP_POST_VARS['site'] . '/js/');
	rmdir($HTTP_POST_VARS['site'] . '/lang/');
	rmdir($HTTP_POST_VARS['site']);
}


Tous est vidé, mais les dossiers ne se suppriment pas...

Vous savez pourquoi ??

Merci :wink:
Avatar de l’utilisateur
Giga_Boss
Apprenti-floodeur
Apprenti-floodeur
 
Messages: 1258
Enregistré le: 19 Déc 2004 à 23:43
Localisation: France - Région parisienne

Messagepar Elglobo » 17 Juil 2007 à 23:01

Bonsoir Giga_boss,

Que vaut $HTTP_POST_VARS['site'] dans ton cas ?
Pour ma part, j'ai testé ta fonction et elle marche parfaitement même sans les rmdir de fin, à condition que le chemin soit le bon, et que tu ai les droits suffisants.

@+ :wink:
phpBB-Services.com: L'hébergement et l'assistance de votre forum phpBB en toute tranquillité.
Avatar de l’utilisateur
Elglobo
Floodeur universel
Floodeur universel
 
Messages: 14943
Enregistré le: 13 Oct 2004 à 17:28

Messagepar Giga_Boss » 17 Juil 2007 à 23:10

$HTTP_POST_VARS['site'] est le nom du dossier avec ses sous-dossiers à supprimer.

C'est sur Free que ça ne marche pas alors ?
Avatar de l’utilisateur
Giga_Boss
Apprenti-floodeur
Apprenti-floodeur
 
Messages: 1258
Enregistré le: 19 Déc 2004 à 23:43
Localisation: France - Région parisienne

re

Messagepar Elglobo » 17 Juil 2007 à 23:39

Giga_Boss,

Donne moi la valeur précise pour un exemple que prend $HTTP_POST_VARS['site'].

Ensuite, au niveau de Free, inutile de gérer les CHMOD, tu n'y a pas accés, mais par contre les droits en écriture tu les as d'office.

@+ :wink:
phpBB-Services.com: L'hébergement et l'assistance de votre forum phpBB en toute tranquillité.
Avatar de l’utilisateur
Elglobo
Floodeur universel
Floodeur universel
 
Messages: 14943
Enregistré le: 13 Oct 2004 à 17:28

Re: Supprimer un dossier en PHP

Messagepar Crosby » 17 Juil 2007 à 23:53

Salut,

Chez moi aussi ton code fonctionne, même si normalement j'utilise celui ci. :)
Code: Tout sélectionner
<?
function effacer($dir)
    {
        if ($handle = opendir($dir))
        {
            while (($file = readdir($handle)) !== false)
            {
                if ($file === "." or $file === "..")
                {
                    continue;
                }
                elseif (is_dir($dir . '/' . $file))
                {
                    effacer($dir . '/' . $file);
                }
                else
                {
                    unlink($dir . '/' . $file);
                }
            }
            closedir($handle);
        }
        rmdir($dir);
    }

effacer('nom_du_répertoire_a_supprimer/'); ?>

Édit: Merci Elglobo, Source: Infomaniak.be :wink:
Modifié en dernier par Crosby le 18 Juil 2007 à 00:06, modifié 1 fois.
ImagePas de support par message privé ou msn !
ImageFormulaire obligatoire pour obtenir du support !
Crosby
Maître des floodeurs
Maître des floodeurs
 
Messages: 2019
Enregistré le: 19 Juil 2006 à 20:51
Localisation: Québec

re

Messagepar Elglobo » 17 Juil 2007 à 23:58

Bonsoir Crosby,

Il est bon de rappeler tes sources lorsque tu postes un script qui n'est pas de toi :)
Source: Infomaniak.be

@+ :wink:
phpBB-Services.com: L'hébergement et l'assistance de votre forum phpBB en toute tranquillité.
Avatar de l’utilisateur
Elglobo
Floodeur universel
Floodeur universel
 
Messages: 14943
Enregistré le: 13 Oct 2004 à 17:28

Re: re

Messagepar Giga_Boss » 18 Juil 2007 à 00:44

Elglobo a écrit:Giga_Boss,

Donne moi la valeur précise pour un exemple que prend $HTTP_POST_VARS['site'].


Exemple simple :

Code: Tout sélectionner
$HTTP_POST_VARS['site'] = 'toto';


le dossier est toto.
Avatar de l’utilisateur
Giga_Boss
Apprenti-floodeur
Apprenti-floodeur
 
Messages: 1258
Enregistré le: 19 Déc 2004 à 23:43
Localisation: France - Région parisienne

re

Messagepar Elglobo » 18 Juil 2007 à 12:42

Alors c'est un problème de droit, car il faut juste être sûr que l'argument de ta fonction effacer, ne commence et ne finis par un slash "/"

As tu testé la fonction proposée par Crosby ?

@+ :wink:
phpBB-Services.com: L'hébergement et l'assistance de votre forum phpBB en toute tranquillité.
Avatar de l’utilisateur
Elglobo
Floodeur universel
Floodeur universel
 
Messages: 14943
Enregistré le: 13 Oct 2004 à 17:28

Messagepar Giga_Boss » 19 Juil 2007 à 11:53

pas encore, j'essais d'ici peu.
Avatar de l’utilisateur
Giga_Boss
Apprenti-floodeur
Apprenti-floodeur
 
Messages: 1258
Enregistré le: 19 Déc 2004 à 23:43
Localisation: France - Région parisienne

Messagepar Netuser » 16 Aoû 2007 à 16:13

Je remonte ce sujet cat j'ai besoin d'effacer certain nombre de fichiers automatiquemnet, en effet apres le maj vers phpbb3 RC4 j'ai plein de fichiers .bak un peu pres partout. Est ce que je peux utliser meme genre de script qui effacerai tout les fichier avec l'extension .bak dans tout les dossiers et les sous dossiers ?

Merci :)
Netuser
Posteur néophyte
Posteur néophyte
 
Messages: 82
Enregistré le: 17 Jan 2006 à 23:49

Messagepar Saint-Pere » 16 Aoû 2007 à 16:28

@Netuser : Oui en faisant la modif ci-dessous. Dans la fonction de infomaniak :


CHERCHER

Code: Tout sélectionner
unlink($dir . '/' . $file); 


REMPLACER PAR

Code: Tout sélectionner
if (eregi('.bak',$file)) unlink($dir . '/' . $file); 
Saint-Pere
Apprenti-floodeur
Apprenti-floodeur
 
Messages: 1138
Enregistré le: 26 Mar 2004 à 15:05
Localisation: Sur Malleo

Messagepar Netuser » 16 Aoû 2007 à 16:55

Merci :) je vais essayer ça :)
Netuser
Posteur néophyte
Posteur néophyte
 
Messages: 82
Enregistré le: 17 Jan 2006 à 23:49


Retourner vers Coding, Webmastering et Sécurité informatique

 


  • Articles en relation
    Réponses
    Vues
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités