Problème d'effacage de dossier

cs_oxid
Messages postés
43
Date d'inscription
lundi 20 janvier 2003
Statut
Membre
Dernière intervention
6 mars 2007
- 18 nov. 2004 à 16:28
cs_oxid
Messages postés
43
Date d'inscription
lundi 20 janvier 2003
Statut
Membre
Dernière intervention
6 mars 2007
- 4 avril 2005 à 02:13
Bonjour, j'ai un probleme, en fait je ne suis pas capable d'effacer un dossier...

$Emp continet le chemin complet du dossier. Je n'ai aucun probleme pour créer le dossier, mais pour l'Effacer ca ne marche pas.

Voici le code que j'utilise pour crée le dossier : mkdir ( $Emp, "0777" );

Voici le code pour effacer mon dossier :
rmdir ( "$Emp" ) or die("Ne peut pas effacer le fichier");

Et quand je vais voir mon script php, ca me dit "Ne peut pas effacer le fichier" alors je ne sait pas pourquoi la fonction rmdir() de marche pas.

Pour les infos, je suis sur free.fr

12 réponses

cs_windu
Messages postés
282
Date d'inscription
vendredi 16 mai 2003
Statut
Membre
Dernière intervention
19 juillet 2006

18 nov. 2004 à 16:46
Vérifie que ton dossier est vide avant de l'effacer...

Que la Force soit avec toi, Jeune Padawan!!!
0
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
18 nov. 2004 à 19:02
tu peux faire une fonction de ce style pour effacer un dossier non vide :

function deldir($dir){

1 tu liste les fichiers/dossiers de $dir tu places ce nom de fichier ou dossier dans $nouveaudir
2 si c'est un ficheir alors tu le suprimes, si c'ets un dossier alors tu apelles deldir($dir/$nouveaudir) puis tu suprimes $nouveaudir
3 si c'ets un fichier, tu suprime le fichier
4 tu suprimes ton dossier en question...
}

voila ça devrait marcher et en plus c'est récursif...
0
cs_oxid
Messages postés
43
Date d'inscription
lundi 20 janvier 2003
Statut
Membre
Dernière intervention
6 mars 2007

19 nov. 2004 à 01:48
Lol, je savait deja...

Mais le fichier est vide, et j'ai les droits, et le chemin est exact alors pourkoi ca ne marche pas??
0
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
19 nov. 2004 à 17:49
dossier ou fichier ???
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_oxid
Messages postés
43
Date d'inscription
lundi 20 janvier 2003
Statut
Membre
Dernière intervention
6 mars 2007

19 nov. 2004 à 18:17
C'Est un dossier,

j'utilise la commande rmdir("nom") et avec le chemin complet, le dossier est vide ,et j'ai les droits 777

il doit y avoir une probleme avec le hebergeur,

ya t-il une autre maniere d'effacer un dossier? (sans utiliser des commandes ftp)
0
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
19 nov. 2004 à 18:20
oui t'as aussi system("mkdir $fichier");
0
phenix_immortel
Messages postés
9
Date d'inscription
mercredi 14 juillet 2004
Statut
Membre
Dernière intervention
18 avril 2005

2 avril 2005 à 18:50
Le Problem qui ce pose c que Free a desactivé un certain nombre de fonction:
http://faq.free.fr/?q=1137



Quelles sont les fonctions PHP interdites sur Free ?,
----

Par soucis de performances et de sécurité, nous avons choisi de desactiver les fonctions suivantes de php:





chown,
chmod,
get_current_user,
----

php_uname,
putenv,
set_time_limit,
----

getmyuid,
getmypid,
dl,
----

ini_alter,
ini_restore,
ini_set,
----

exec,
passthru,
system,
----

popen,
pclose,
leak,
----

mysql_list_dbs,
listen,
chgrp,
----

disk_total_space,
disk_free_space,
rmdir,
----

realpath,
tmpfile,
link,
----

shell_exec,
proc_open,
chroot,
----

openlog,
closelog,
syslog,
----

flock,
socket_create_listen,
socket_accept,
----

socket_listen,
sleep,
usleep,
----

umask,
set_include_path,
restore_include_path,
----

symlink


(La fonction mail() fonctionne avec des quotas d'envoi (2000mails/semaine).
A noter: Les modules ftp, imap ne sont pas installés)

Et Donc: System et Rmdir son desactiver sur Free.fr
Need Help je suis entrain de fair une "Explorateur de Dossier" mais il me manque cette fonction, et je suis aussi malheuresement sur FREE, voici un lourd poid a payer pour la gratuité sans pub.

Je pensai aussi a un acce par FTP. pour effacer le dossier, Pas forcement en recursife, cela pouvant etre fait en adaptant un script ke jai trouver sur le net,:

?php
// Supprimer un fichier ou dossier FTP via son navigateur par
// l'adresse: http://votresite.org/efface.php?x=dossier/fichier.ext


$xx=$_GET['x'];
if($xx==''){ die("Parametre x oublié"); }


// si fichier
if(is_file($xx)){
chmod($xx,0777);
unlink($xx);
exit;
}
// si dossier ici on laisse le debut.
$xx=$_GET['x'].'/';
if(is_dir($xx)){
chmod($xx,0777);
$question=opendir($xx); // vider tout son contenu
while($fichier=readdir($question)){
if(is_file($xx.$fichier)){
chmod($xx.$fichier,0777);
unlink($xx.$fichier); }
}
closedir($question);
//Ici il suffirait de mettre notre supression via fonction FTP
//ou meme Verifier si rmdire est active ou pas et de la on change ce que l'on a besoin
//Soit rmdir soi la fonction FTP
rmdir($xx);
}


?
0
phenix_immortel
Messages postés
9
Date d'inscription
mercredi 14 juillet 2004
Statut
Membre
Dernière intervention
18 avril 2005

3 avril 2005 à 11:34
J'ai trouvé la fonction FTP, et son utilisation, je vous en fait profiter:Lien Pour expliquer le fonctionnement et les fonction FTP: http://php-tools.org/manuel-php/fonctions/ref.ftp.phpFonction:ftp_rmdir

(PHP 3>= 3.0.13, PHP 4 , PHP 5)ftp_rmdir -- Efface un dossier FTP

Descriptionbool ftp_rmdir ( resource ftp_stream, string directory)
ftp_rmdir() efface le dossier directory.
Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.






Exemple 1. Exemple avec ftp_rmdir()



0
cs_oxid
Messages postés
43
Date d'inscription
lundi 20 janvier 2003
Statut
Membre
Dernière intervention
6 mars 2007

3 avril 2005 à 21:02
Hum, merci de ton aide, mais ca ne marche pas sur free.fr ca dit :
Fatal error: Call to undefined function: ftp_connect() in .....effacerDoss.php on line 6
0
phenix_immortel
Messages postés
9
Date d'inscription
mercredi 14 juillet 2004
Statut
Membre
Dernière intervention
18 avril 2005

4 avril 2005 à 00:01
a tu esssayer de nommmé ta page effacerDoss.php3
je nai pas encor pu tester car mon script "explorer" est encor a debbuger, mais des que jai le temp je le fait et je vous dit!
j'ai eu cette astuce dans un forum d'upload via FTP, mais ci free gere les upload FTP, grace a .php3 au lieu de .php
il doit pouvoir geré un ftp_mrdir
source:
187&print=1 http://www.phpindex.com/trucsetastuces/trucsetastuces_lire.php3?element=187&print=1

si sur free ca marche
,
----

<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>

----,
<TABLE cellSpacing=0 cellPadding=0 width=\"100%\" border=0>

----

</TD></TR></TBODY></TABLE> </TD></TR>
<TR bgColor=#ffffff>
<TD vAlign=center width="20%" bgColor=#eeeeee colSpan=2> </TD>
<TD vAlign=center width="60%" bgColor=#eeeeee>par [mailto:reyanyan12@hotmail.com Kes ]</TD>
<TD vAlign =center align=right width="5%" bgColor=#eeeeee></TD>
<TD vAlign=center width="15%"> </TD></TR>
<TR bgColor=#ffffff>
<TD vAlign=top width="100%" colSpan=5> </TD></TR>
<TR bgColor=#ffffff>
<TD vAlign=top width="100%" colSpan=5>

En fait il faut renomer le fichier de php en php3 et par ailleurs de passer, comme c'est dit dans le tutorial, par une boite de dialogue qui demande quel est le fichier sur le disque dur qui sera uploadé
(la fonction )

En nommant les fichiers par leur nom directement, celà ne marche pas parce que je crois que pour des raisons de securité il sont stocké dans un endroit provisoir.
ca donne des noms de ficheirs bizarre, qui posent ensuite probleme une fois uploadé (n'apparait pas)
si on fixe un nom de fichier (ecriture) la ca marche.

perso je me sers de ça:

********index.html*******
<html>
<head>
</head>

<form method="post" ENCTYPE="multipart/form-data" action="form.php3">

</form>

**********************cut here**********

*******form.php3*******
<?
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");

error_reporting (7);

echo ("
<style type="text/css"><!--
A:link {text-decoration: none;}
A:visited {text-decoration: none;}
A:active {text-decoration: none;}
A:hover {text-decoration: none; color:red;}
--></style>
");

$user = "user";
$pass = "pass";
$host = "ftpperso.free.fr";

if (strlen($dir)==0) $dir = "";

$c = ftp_connect ("$host");
$a = array ();
if ($c) {
echo ("connecte a $host
");
$l=ftp_login ($c,$user,$pass);
if ($l) {
echo ("$user logged in
");
$a = ftp_rawlist ($c,$dir);

//Upload du fichier
if (ftp_put($c, md5($file) , $file, FTP_BINARY))
{
echo "

fichier $file uploadé";
}
else
{
echo "

fichier" . $file . " non uploadé";
}
}
else {
echo ("wrong password");
}
ftp_quit ($c);
}

echo ("");
echo ("");

?>
*********cut here********

Bon c'est un melange d'un ça, et d'un autre truc qui m'a permit de sortir ce script je l'ai testé il suffit de changer les user/pass et une fois loadé sur free il marche.
A noter: vous pouvez specifier le ftp que vous voulez vous n'êtes pas obligé de vous connecter sur l'hebergeur de votre fichier php.
Les fichiers uen fois hebergé auront des nom de hash md5 (nom 32 chiffres de base hexadecimal)
C'est pour eviter de conner toujours le même nom et pour pas m'emmerder, à faire 36 fioritures pour donner un nom qui sera accepté


par Franck,
,
,
----

,
----

C'est parfait, j'ai suivi tous les conseils, pour free (upload.php3), ca marche

Ci quelqu'un a reussi faite moi signe s'il vous plait, merci.

</TD></TR></TBODY></TABLE>
0
cs_oxid
Messages postés
43
Date d'inscription
lundi 20 janvier 2003
Statut
Membre
Dernière intervention
6 mars 2007

4 avril 2005 à 02:09
Merci pour l'astuce pour envoyer des fichier,

mais j'utilise deja une série de script php et aussi un programme en Vb que j'ai fais pour pouvoir gerer mon serveur free. J'ai créer un programme car j'habite au quebec et donc free.fr bloque les ip qui ne sont pas francaises ou de free donc mon programme marche, sauf que je ne peut pas effacer les dossiers... ce qui est embetant...

Mais le probleme avec ta maniere pour envoyer un fichier, c'est qu'il doit etre fait a la main via le formulaire html, tandis que moi j'envoit le fichier sur un ftp temporaire ( ftp.cf.geocities.com ) et apres le script php qui est sur mon serveur free copie le fichier du serveur temporraire en http et le met sur le mien donc cela donne la possibilité de le faire automatiquement via un script.
0
cs_oxid
Messages postés
43
Date d'inscription
lundi 20 janvier 2003
Statut
Membre
Dernière intervention
6 mars 2007

4 avril 2005 à 02:13
Comme tu avait dit, j'ai renommer le fichier en .php3 et ca ne marche pas plus, ca dit la même erreure.
0