Suppression dossier php

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Suppression dossier php

Re: Suppression dossier php

par Solar13 » 01 nov. 2011, 21:42

Je ne sais pas en fait, une mise a jour de wamp a résolu le problème :cry:

Re: Suppression dossier php

par moogli » 01 nov. 2011, 21:22

Et c'était quoi le problème alors ?
on va encore dire que je suis mesquin mais je dirais le pb est entre le clavier et la chaise ? :mrgreen:



j'suis déjà dehors :)

Re: Suppression dossier php

par Ryle » 01 nov. 2011, 21:05

Et c'était quoi le problème alors ? :)

Pour le "1" qui apparait, c'est parce que tu demandes à php d'afficher le résultat de ta fonction (et comme ta fonction retourne true ou false, c'est à dire 1 ou 0, en fonction du résultat de l'exécution, ben php l'affiche). Enlève le echo et php se contentera d'appeler ta fonction sans rien afficher ;)

Re: Suppression dossier php

par Solar13 » 01 nov. 2011, 19:48

Oufff, c'est bon !!!!

Sérieux...

Par contre, il m'affiche un petit 1 après mon echo:

echo clearDir($dossier);

Il y a moyen de contourner ?

Re: Suppression dossier php

par Solar13 » 01 nov. 2011, 19:33

Je viens de tester en mettant directement le chemin dans la variable:
$dossier = "../images/test";

Rien ne se passe, même sans passer par une variable, en mettant directement le chemin :(

Y'a un truc que j'ai pas compris ?
Il en sensé de virer tout ce qui se trouve dans test non ?

Re: Suppression dossier php

par Solar13 » 01 nov. 2011, 19:27

Cela est possible de ne pas marcher sur une variable ?

Il faut peut être absolument un chemin absolu ?

Je capte pas, y'a rien de spécial sur ce script, je ne comprend pas pourquoi ça fonctionne pas :(

Re: Suppression dossier php

par moogli » 01 nov. 2011, 19:18

reste a deboguer pour savoir ce que tu envoie à ta fonction, qui "fonctionne" :mrgreen:

Re: Suppression dossier php

par Solar13 » 01 nov. 2011, 18:59

Re-bonjour,

Je viens de vérifier et je suis bien à error_reporting = E_ALL sur mon php.ini.

Re: Suppression dossier php

par moogli » 01 nov. 2011, 12:54

tu a lu http://www.php.net/manual/fr/configurat ... .modes.php ?

tu n'a pas compris comment utiliser la fonction http://www.php.net/manual/fr/function.e ... orting.php ?

tout est dans la 1ère page fournie !

@+

Re: Suppression dossier php

par Solar13 » 01 nov. 2011, 12:43

Oui j'en viens en fait, mais c'est quelle ligne qui me concerne, que je dois vérifier ?

Et je dois la changer par quoi ?

( Désolé je ne suis pas très à l'aise avec le php.ini, je ne veux pas faire de bêtises )

Re: Suppression dossier php

par moogli » 01 nov. 2011, 12:41

Re: Suppression dossier php

par Solar13 » 01 nov. 2011, 12:40

Heu... C'est dans le php.ini c'est ça ?

C'est quelle ligne que je dois vérifier ?

Re: Suppression dossier php

par moogli » 01 nov. 2011, 11:18

vérifie ton niveau d'erreur (il devrait être a E_ALL|E_STRICT pour php5) s'il est inférieur il est possible de ne pas voir les messages d'erreurs.

perso je viens de tester ton code et il fonctionne
<?php
// en commentaire parce que j'ai pas ta table, pas d'id dans l'url etc etc :)
// ceci n'étant pas utile pour le fonctionnement globale de la suppression !
//if(isset($_GET['id'])){ 
  /*
$id = $_GET['id'];

$sql = "SELECT dossier
         FROM test
                 WHERE ID_table = '$id'";
  
//exécution de la requête:
$requete = mysql_query($sql) or die( mysql_error());

$result = mysql_fetch_array ($requete);

$resultat = $result['dossier'];

$dossier = "$resultat/images";
*/

function clearDir($dossier) {
	$ouverture=opendir($dossier);
	if (!$ouverture) return;
	while($fichier=readdir($ouverture)) {
		if ($fichier == '.' || $fichier == '..') continue;
			if (is_dir($dossier."/".$fichier)) {
				$r=clearDir($dossier."/".$fichier);
				if (!$r) return false;
			}
			else {
					$r = unlink($dossier."/".$fichier);
					if ($r === false) return false;
			 }
	}
	closedir($ouverture);
	$r = rmdir($dossier);
	if ($r === false ) return false;
			 return true;
}
// dompdf étant un répertoire à la racine du script !
if (clearDir('dompdf')) {
	echo 'c bon';
}
else {
	echo 'pas bon';
}
  ?>
@+

Re: Suppression dossier php

par Solar13 » 01 nov. 2011, 10:14

J'ai fait en relatif et absolu.

Le script se trouve au niveau inférieur de image.

Ma variable me renvoie bien:

../images/dossier

Mais rien ne se passe à l’intérieur du dossier, pas de message, rien.

Re: Suppression dossier php

par Ryle » 01 nov. 2011, 10:03

La fonction que tu utilises est récursive, elle va parcourir le dossier que tu lui donnes en paramètre, supprimer tous les fichiers qu'il contient et recommencer pour le même process pour chaque dossier qu'elle va trouver (ouvrir le dossier, supprimer les fichiers et traiter les dossiers, ...)

Il faut donc t'assurer que le chemin vers le dossier à supprimer est bien correct : soit un chemin relatif depuis le script qui l'appel, soit un chemin absolu depuis la racine du disque... (et effectivement, virer les "@" pour pouvoir travailler avec toutes les infos dont tu as besoin ;))