Bonjour je n'arrive pas le faire fonctionner sur mon serveur local EasyPhp
-> je le mets dans un dossier de mon site
-> je changer $rootdir='./' et $imagedir'./images/
mais lorsque je lance la page il y à tout le code php s'affiche en partie sur l'ecran
tikitoun
Messages postés1Date d'inscriptionlundi 13 juin 2005StatutMembreDernière intervention11 mars 2008 11 mars 2008 à 17:36
Bonjour,
J’aimerai placer se script dans une interface Admin., mais j’aimerai que le script agisse que sur mon dossier «upload » qui se trouve à la racine du site. (Alors que mon script se situ /admin/gestion/ ..)
Comment dois-je modifier le script pour lui dire d’agir que dans le répertoire « upload »?
Merci d’avance.
Guiom60
Messages postés8Date d'inscriptionvendredi 11 mai 2007StatutMembreDernière intervention13 mai 2007 13 mai 2007 à 00:19
Yess ! C'est super jolie, mais je me rend compte que je n'ai psa besoin de ceci sur mon site ^^
Encore merci.
Guiom60
Messages postés8Date d'inscriptionvendredi 11 mai 2007StatutMembreDernière intervention13 mai 2007 13 mai 2007 à 00:16
Donc avec la même manipulation et en changeant l'etat du dossier ça passera ?
Je vais essayer ... Je vais d'abord chercher comment faire ça ^^
En fait, tu dois avoir les droits en écriture sur le dossier spécifié... en principe, tu devrais, pour le rootdir, entrer http://monnom.free.fr/ftp/ et mettre le dossier ftp en CHMOD 777 (Tous les droits d'exécution, de lecture et d'écriture).
Guiom60
Messages postés8Date d'inscriptionvendredi 11 mai 2007StatutMembreDernière intervention13 mai 2007 11 mai 2007 à 22:47
Je suis egalement débutant et je n'arrive pas a utiliser ce code.
J'ai téléchargé le zip, envoié le packtage dans la racine de mon hébergeur. Admetons http://monnom.free.fr (Je suis chez free)
J'imagine que la manipultation etait super simple, mais je l'ai raté :\
Une petite explication ?
astuceur
Messages postés38Date d'inscriptionlundi 10 février 2003StatutMembreDernière intervention21 septembre 2008 4 nov. 2006 à 17:57
Je suis débutant je cherchais un script comme çà depuis longtemps, merci beaucoup. Très bon boulot = Bonne note :p
akatopaz
Messages postés1Date d'inscriptionmercredi 22 novembre 2000StatutMembreDernière intervention18 août 2006 18 août 2006 à 17:57
Je compte mettre en ligne une version un peu plus evoluée. je vous tiens au courant, et désolé de ne pas etre très présent, je bosse pour mes etudes, et je n'ai pas beaucoup de temps à accorder à ces petits codes ...
merci à tous de votre soutien.
aicfr
Messages postés12Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention19 juin 2006 19 juin 2006 à 11:03
aicfr
Messages postés12Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention19 juin 2006 18 juin 2006 à 23:31
D'après ce que j'ai lu, il serait possible de modifier la configuration de PHP par l'intermediaire d'un .htaccess a une condition: PHP doit être installé en tant que module apache, pas en tant que CGI -> sinon erreur 500.
asfivaio
Messages postés3Date d'inscriptionmercredi 7 décembre 2005StatutMembreDernière intervention 1 juin 2006 18 juin 2006 à 09:31
Je confirme, j'ai les mêmes problèmes de "virus25" avec le même matériel ! un serveur : Synology DS-101G+
virus25
Messages postés2Date d'inscriptionmardi 13 juin 2006StatutMembreDernière intervention17 juin 2006 17 juin 2006 à 18:58
le problème, c'est que je n'ai pas accès au php.ini, j'ai un serveur NAS avec Linux embarqué en Flashrom, du moins je ne connais pas la manip à faire pour modifier ce fichier
Mon serveur : Synology DS-101G+
aicfr
Messages postés12Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention19 juin 2006 17 juin 2006 à 10:31
Dans le fichier php.ini:
post_max_size = xM
upload_max_filesize = xM
aicfr
Messages postés12Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention19 juin 2006 17 juin 2006 à 10:28
Il me semble que cela est du à un "probleme" de configuration de php
virus25
Messages postés2Date d'inscriptionmardi 13 juin 2006StatutMembreDernière intervention17 juin 2006 17 juin 2006 à 10:04
Bonjour,
excellent code, cependant, est-il possible d'augmenter la taille des fichiers à uploader ? apparemment jusqu'à 3.5Mo c'est bon, au-delà, il ne transfère rien mais en plus il affiche une partie de l'index de mon site
quelqu'un a une soultion ??
merci (un noob du PHP)
aicfr
Messages postés12Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention19 juin 2006 12 juin 2006 à 15:51
Une petite suggestion: il serait peut etre bien d'utiliser la fonction highlight_file pour la colorisation syntaxique de certains fichiers (et peut etre meme ajouter le numero des lignes)?
aicfr
Messages postés12Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention19 juin 2006 12 juin 2006 à 13:28
Bonjour,
Excelent script qui me rend bien des services mais je pense qu'il y a un petit bug au niveau de l'encodage des accents sur le nom des fichiers.
asfivaio
Messages postés3Date d'inscriptionmercredi 7 décembre 2005StatutMembreDernière intervention 1 juin 2006 9 juin 2006 à 18:17
Bonjour,
J'ai eu comme vous des problèmes pour effacer les fichiers ou les répertoires, j'utilise le code de Marie-Hélène, cela fonctionne très bien, merci a tous le monde pour leurs participation.
// suppression du repertoire
$res = rmdir( $dir );
}
}
$rootdir = "./documents";
$imagedir = "./images";
if ( ! is_dir($rootdir) )
{
echo "Unable to get access to $rootdir, contact your web administrator.";
die();
}
$currentdir = $_GET['path'];
// on tronque le debut si c'est un /
if ( substr($currentdir,0,1) == "/" )
{
$currentdir = substr($currentdir,1,strlen($currentdir) - 1);
}
// si la fin de $currentdir = .. alors on retourne a la racine de ce dossier
if ( substr($currentdir, strlen($currentdir) - 2, 2) == ".." )
{
// strip last /..
$currentdir = substr($currentdir, 0, strlen($currentdir) - 3);
// strip last /dirname
$currentdir = substr($currentdir, 0, strrpos($currentdir,"/"));
}
// si la fin de $currentdir = /. alors on retourne a la racine de ce dossier
if ( substr($currentdir, strlen($currentdir) - 2, 2) == "/." )
{
$currentdir = substr($currentdir, 0,strlen($currentdir) - 2);
}
// evite tout probleme de securite MAISempeche les nom de rep avec .. dedans
$currentdir = str_replace("..", "", $currentdir);
// on traite les actions spéciales
$action = $_GET['action'];
switch($action)
{
case "mkdir":
if ( isset($_GET['arg'] ) )
{
// evite tout probleme de securite MAIS empeche les nom de rep avec .. dedans
$mkdir = str_replace("..", "", $_GET['arg']);
umask (0);
mkdir($rootdir . "/" . $currentdir . "/" . $mkdir);
}
else
{
$affiche_creer_formulaire = true;
}
break;
case "rm";
if ( isset($_GET['confirmation'] ) )
{
// evite tout probleme de securite MAIS empeche les nom de rep avec .. dedans
$rm = str_replace("..", "", $_GET['path']);
}
// si l'on ne supprimait pas un fichier (donc un rep, on doit retourner a la racine quelque soit la reponse
if ( ( isset($_GET['confirmation']) || isset($_GET['infirmation']) ) && ! isset($_GET['file']) )
// strip last /dirname pour retourner au parent du rep en cours
$currentdir = substr($currentdir, 0, strrpos($currentdir,"/"));
break;
case "deconnection":
break;
case "upload":
if ( ! isset($_FILES['uploadFile']) )
$affiche_upload_formulaire = true;
break;
}
// l'upload se fait en post (l'action)
if (isset($_POST['action']) && $_POST['action'] == "upload")
{
if ( isset($_FILES['uploadFile']) )
{
$file_name = $_FILES['uploadFile']['name'];
// strip file_name of slashes
$file_name = stripslashes($file_name);
if ($_POST['date'])
{
$file_name = date("Y-m-d-H\hi-") . $file_name;
}
J'espère que ça va aider quelques-uns d'entre vous!!
Je travaille présentement à rajouter une fonction qui permettra de renommer un dossier ou un fichier... je vous redonne des nouvelles dès que j'aurai trouvé la solution...
Bonne chance!
Marie-Hélène
michmichman
Messages postés79Date d'inscriptionjeudi 11 août 2005StatutMembreDernière intervention17 mars 2011 13 nov. 2005 à 19:12
Quelqun pourrait m'indiquer les lignes a modifier et ce qu'il fau que j'ecrive sur celle si!!Svp sa serai super gentil!!
Canuel Michel...
j'ai vraiment besoin d'arriver a inserer ce code sur mon site pour echange de compo musical et sa me ferai plaisir si j'arrivai a le fair!!
crackveill
Messages postés2Date d'inscriptionmardi 28 novembre 2000StatutMembreDernière intervention11 octobre 2005 11 oct. 2005 à 18:29
qqun peu m'aider? les dossier ne se supprimes tjs pas malgrès les differente màj...
qqun a t-il reglé ce pb?
crackveill
Messages postés2Date d'inscriptionmardi 28 novembre 2000StatutMembreDernière intervention11 octobre 2005 11 oct. 2005 à 18:14
bonsoir Elkava,
il y a surement plus propre à faire mais voilà comment j'ai résolu ce probleme que je rencontré moi aussi...
// selon l'extension du fichier
$ext = strtolower(substr($file,strrpos($file,".") + 1,strlen($file) - strrpos($file,".")));
switch($ext)
{
case "gif":
case "jpg":
case "png":
case "tif":
case "bmp":
echo "";
break;
case "htm":
case "php":
case "html":
case "txt":
break;
default:
if ( is_file( $imagedir . "/" . $ext . ".gif" ) )
echo "";
else
echo strtoupper($ext);
break;
}
echo "</td><td>";
switch($ext)
{
case "gif":
case "jpg":
case "png":
case "tif":
case "bmp":
echo "" . $file . "";
echo "</td><td align=right width=15%>";
echo filesize($rootdir . "/" . $currentdir . "/" . $file );
echo " ";
echo "</td></tr>\n";
break;
case "htm":
case "php":
case "html":
case "txt":
break;
}
}
}
closedir($directory);
if ( ! $foundone)
{
echo "<tr><td colspan=3 align=center>Aucun fichier !</td></tr>";
}
?>
je ne fait que debuter en php donc il y a surement plus inteligent à faire...
a+
elkava
Messages postés2Date d'inscriptionsamedi 17 juillet 2010StatutMembreDernière intervention17 juillet 2010 7 oct. 2005 à 20:25
Bonjour,
merci à l'auteur et à tous les participants de ce très bon script.
J'en suis très content et il fonctionne parfaitement même personnalisé et skinné.
Cependant, une modif reste au-dessus de mes compétences, je cherche à cacher un format de fichier du listing pour en éviter la suppression. Comment faire, j'ai bien essayé quelques modifs mais n'y arrive pas.
Je voudrais que les *.php et *.html ne soient pas visibles... ou visibles mais alors non effaçables !
Merci pour votre aide
elkava
cs_zinzeri
Messages postés1Date d'inscriptionvendredi 30 janvier 2004StatutMembreDernière intervention28 septembre 2005 28 sept. 2005 à 17:23
Salut,
Après installation, voici les messages d'erreurs !!
Notice: Undefined index: path in c:\program files\easyphp1-8\www\navigation\index.php on line 11
Notice: Undefined index: action in c:\program files\easyphp1-8\www\navigation\index.php on line 39
Quelqu'un a une idée ?
D'avance merci.
stationm
Messages postés2Date d'inscriptionvendredi 30 juillet 2004StatutMembreDernière intervention28 septembre 2005 28 sept. 2005 à 14:23
bonjour,
tout fonctionne parfaitment chez moi. J'essais de modifier le code pour que le nom des répertoires créés s'insère dans un bdd. Au niveau du formulaire de création de répertoire j'ai ajouter le code suivant :
<?php
//connection au serveur
$cnx = mysql_connect(SERVEUR, USER, PASS, DB) ;
//sÈlection de la base de donnÈes:
$db = mysql_select_db(DB) ;
//rÈcupÈration des valeurs des champs:
$nom_rep = $_POST['arg'] ;
?>
<?php
if ( $affiche_creer_formulaire )
{
// affichage du formulaire pour creer un repertoire
?>
<hr>
<form method="get">
" />
Nom du repertoire :
</form>
<?php $sql = "INSERT INTO rep (nom_rep)
VALUES ( '$nom_rep') " ;
$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
?>
<?php
}
Le problème est que la méthode utilisée par le formulaire est GET, donc j'ai essayé de tout passer en POST mais sans succès.
Je précise que je suis débutant, donc si quelques peut répondre à mon problème ou du moins m'expliquer...merci...
cs_envoyezmoimail
Messages postés4Date d'inscriptionlundi 15 décembre 2003StatutMembreDernière intervention22 septembre 2005 22 sept. 2005 à 20:03
merci à toi emmash pour avoir répondu à mon appel au secours !
ca fait 3 jours que je cherche mais en vain ... je suis débutant en PHP et j'essaie de me débrouiller mais là !...
j'ai essayé ta solution et j'arrive à supprimer des fichiers mais pas des répertoires ...
if ( ! is_dir($rootdir) )
{
echo "Impossible d'acceder a $rootdir ! Contactez moi";
die();
}
$currentdir = $_GET['path'];
// on tronque le debut si c'est un /
if ( substr($currentdir,0,1) == "/" )
{
$currentdir = substr($currentdir,1,strlen($currentdir) - 1);
}
// si la fin de $currentdir = .. alors on retourne a la racine de ce dossier
if ( substr($currentdir, strlen($currentdir) - 2, 2) == ".." )
{
// strip last /..
$currentdir = substr($currentdir, 0, strlen($currentdir) - 3);
// strip last /dirname
$currentdir = substr($currentdir, 0, strrpos($currentdir,"/"));
}
// si la fin de $currentdir = /. alors on retourne a la racine de ce dossier
if ( substr($currentdir, strlen($currentdir) - 2, 2) == "/." )
{
$currentdir = substr($currentdir, 0,strlen($currentdir) - 2);
}
// evite tout probleme de securite MAIS empeche les noms de rep avec .. dedans
$currentdir = str_replace("..", "", $currentdir);
// on traite les actions spéciales
$action = $_GET['action'];
switch($action)
{
case "mkdir":
if ( isset($_GET['arg'] ) )
{
// evite tout probleme de securite MAIS empeche les noms de rep avec .. dedans
$mkdir = str_replace("..", "", $_GET['arg']);
umask (0);
mkdir($rootdir . "/" . $currentdir . "/" . $mkdir);
}
else
{
$affiche_creer_formulaire = true;
}
break;
case "rm";
if ( isset($_GET['confirmation'] ) )
{
// evite tout probleme de securite MAIS empeche les noms de rep avec .. dedans
$rm = str_replace("..", "", $_GET['path']);
// si l'on ne supprimait pas un fichier (donc un rep, on doit retourner a la racine quelque soit la reponse
if ( ( isset($_GET['confirmation']) || isset($_GET['infirmation']) ) && ! isset($_GET['file']) )
// strip last /dirname pour retourner au parent du rep en cours
$currentdir = substr($currentdir, 0, strrpos($currentdir,"/"));
break;
// case "deconnection":
// break;
case "upload":
if ( ! isset($_FILES['uploadFile']) )
$affiche_upload_formulaire = true;
break;
}
// l'upload se fait en post (l'action)
if (isset($_POST['action']) && $_POST['action'] == "upload")
{
if ( isset($_FILES['uploadFile']) )
{
$file_name = $_FILES['uploadFile']['name'];
// strip file_name of slashes
$file_name = stripslashes($file_name);
if ($_POST['date'])
{
$file_name = date("Y-m-d-H\hi-") . $file_name;
}
// selon l'extension du fichier
$ext = strtolower(substr($file,strrpos($file,".") + 1,strlen($file) - strrpos($file,".")));
switch($ext)
{
case "gif":
case "jpg":
case "png":
case "jpeg":
case "bmp":
echo strtoupper($ext);
break;
si t'a besoin d'aide, n'hésite pas... c'est akatopaz qui a fait le code à la base (suppression qui fonctionne pas), mais comme il n'a pas l'air très intéressé à aider les autres...
cs_envoyezmoimail
Messages postés4Date d'inscriptionlundi 15 décembre 2003StatutMembreDernière intervention22 septembre 2005 22 sept. 2005 à 10:15
bonjour à tous !
merci à l'auteur pour cette source super pratique ... même si la supression de fonctionne pas bien :-(
je suis sur un projet et j'aimerais pouvoir supprimer les dossiers ? Est ce que quelqu'un à une idée ???
je sais que c'est la fonction rmdir() mais je ne sais pas comment l'adapter au code (qui marche bien) de Emmash !
Merci à tous de votre prochaine aide !...
bebel3
Messages postés6Date d'inscriptiondimanche 5 juin 2005StatutMembreDernière intervention20 août 2005 20 août 2005 à 23:47
mmh j'ai essayé ta solution mais ca ne fonctionne pas chez moi
j'ai essayé avec ta ligne de code unlink, mais j'ai remarqué que ça ne fonctionnait que sur des fichiers...
j'ai fais des tests de mon côté et j'ai remplacé ta ligne de code par une alternative qui vérifie si ce qui est à supprimer est un dossier ou un fichier... si c'est un fichier, la ligne de code unlink sera utilisé sinon on utilisera une boucle qui supprime tout le contenu du dossier à supprimer et ensuite supprime le dossier...
voilà c'est tout!!
J'espère que ça pourra t'aider!!
Merci pour ton aide ;)
Voici le code qui remplace ta ligne de code unlink :
// suppression avancee d'un repertoire
//
// DESCRIPTION
// > permet de supprimer un dossier meme s'il n'est pas vide. Le script explore tout le contenu et le supprime
// > avant de supprimer le dossier.
//
// >> Parametres d'entree :
// > $dir : STRING / chemin d'acces au dossier a supprimer
//
// >> Parametre de sortie : BOOLEEN / TRUE si dossier supprime, FALSE en cas d'erreur
// ajout du slash a la fin du chemin s'il n'y est pas
en faisant d'autres tests j'ai remarqué, moi aussi, que la suppression en fonctionnait pas... j'attend toujours une réponse de la part de l'auteur...!!
bebel3
Messages postés6Date d'inscriptiondimanche 5 juin 2005StatutMembreDernière intervention20 août 2005 9 août 2005 à 00:25
bon code c'est ce que je recherchais
sinon chez moi la fonction pour supprimer un dossier ou un fichier ne fonctionne pas...
quelqu'un à une solution ? peut-être n'ai-je pas les droits suffisant ?
Bravo parce que sérieux c'est super ce que t'a réussi à programmer! J'avais justement besoin d'un petit ftp en php en ligne! J'ai seulement eu à entrer le nom de mon dossier racine et le nom de mon dossier images et tout marche super bien! Je suis vraiment très épatée ;)
18 juil. 2017 à 14:51
-> je le mets dans un dossier de mon site
-> je changer $rootdir='./' et $imagedir'./images/
mais lorsque je lance la page il y à tout le code php s'affiche en partie sur l'ecran
11 mars 2008 à 17:36
J’aimerai placer se script dans une interface Admin., mais j’aimerai que le script agisse que sur mon dossier «upload » qui se trouve à la racine du site. (Alors que mon script se situ /admin/gestion/ ..)
Comment dois-je modifier le script pour lui dire d’agir que dans le répertoire « upload »?
Merci d’avance.
13 mai 2007 à 00:19
Encore merci.
13 mai 2007 à 00:16
Je vais essayer ... Je vais d'abord chercher comment faire ça ^^
Merci Emmash !
12 mai 2007 à 17:51
11 mai 2007 à 22:47
J'ai téléchargé le zip, envoié le packtage dans la racine de mon hébergeur. Admetons http://monnom.free.fr (Je suis chez free)
J'ai modifié ces lignes :
$rootdir = "http://monnom.free.fr/";
$imagedir = "http://monnom.free.fr/images/dir.png";
Message affiché : "Unable to get access to http://monnom.speurt.free.fr/, contact your web administrator."
J'imagine que la manipultation etait super simple, mais je l'ai raté :\
Une petite explication ?
4 nov. 2006 à 17:57
18 août 2006 à 17:57
merci à tous de votre soutien.
19 juin 2006 à 11:03
http://www.phpfrance.com/tutoriaux/index.php/2005/04/26/30-lupload-de-fichiers
RUBRIQUE: Envoyer des fichiers volumineux
19 juin 2006 à 10:58
http://www.developpez.net/forums/showthread.php?t=119198
18 juin 2006 à 23:31
18 juin 2006 à 09:31
17 juin 2006 à 18:58
Mon serveur : Synology DS-101G+
17 juin 2006 à 10:31
post_max_size = xM
upload_max_filesize = xM
17 juin 2006 à 10:28
17 juin 2006 à 10:04
excellent code, cependant, est-il possible d'augmenter la taille des fichiers à uploader ? apparemment jusqu'à 3.5Mo c'est bon, au-delà, il ne transfère rien mais en plus il affiche une partie de l'index de mon site
quelqu'un a une soultion ??
merci (un noob du PHP)
12 juin 2006 à 15:51
12 juin 2006 à 13:28
Excelent script qui me rend bien des services mais je pense qu'il y a un petit bug au niveau de l'encodage des accents sur le nom des fichiers.
9 juin 2006 à 18:17
J'ai eu comme vous des problèmes pour effacer les fichiers ou les répertoires, j'utilise le code de Marie-Hélène, cela fonctionne très bien, merci a tous le monde pour leurs participation.
Christophe
14 nov. 2005 à 20:19
<?php
function advRmDir($dir)
{
if( !preg_match( "/^.*\/$/", $dir ) ) $dir .= '/';
// Ouverture du repertoire demande
$handle = @opendir( $dir );
// si pas d'erreur d'ouverture du dossier on lance le scan
if( $handle != false )
{
// Parcours du repertoire
while( $item = readdir($handle) )
{
if($item != "." && $item != "..")
{
if( is_dir( $dir.$item ) )
advRmDir( $dir.$item );
else unlink( $dir.$item );
}
}
// Fermeture du repertoire
closedir($handle);
// suppression du repertoire
$res = rmdir( $dir );
}
}
$rootdir = "./documents";
$imagedir = "./images";
if ( ! is_dir($rootdir) )
{
echo "Unable to get access to $rootdir, contact your web administrator.";
die();
}
$currentdir = $_GET['path'];
// on tronque le debut si c'est un /
if ( substr($currentdir,0,1) == "/" )
{
$currentdir = substr($currentdir,1,strlen($currentdir) - 1);
}
// si la fin de $currentdir = .. alors on retourne a la racine de ce dossier
if ( substr($currentdir, strlen($currentdir) - 2, 2) == ".." )
{
// strip last /..
$currentdir = substr($currentdir, 0, strlen($currentdir) - 3);
// strip last /dirname
$currentdir = substr($currentdir, 0, strrpos($currentdir,"/"));
}
// si la fin de $currentdir = /. alors on retourne a la racine de ce dossier
if ( substr($currentdir, strlen($currentdir) - 2, 2) == "/." )
{
$currentdir = substr($currentdir, 0,strlen($currentdir) - 2);
}
// evite tout probleme de securite MAISempeche les nom de rep avec .. dedans
$currentdir = str_replace("..", "", $currentdir);
// on traite les actions spéciales
$action = $_GET['action'];
switch($action)
{
case "mkdir":
if ( isset($_GET['arg'] ) )
{
// evite tout probleme de securite MAIS empeche les nom de rep avec .. dedans
$mkdir = str_replace("..", "", $_GET['arg']);
umask (0);
mkdir($rootdir . "/" . $currentdir . "/" . $mkdir);
}
else
{
$affiche_creer_formulaire = true;
}
break;
case "rm";
if ( isset($_GET['confirmation'] ) )
{
// evite tout probleme de securite MAIS empeche les nom de rep avec .. dedans
$rm = str_replace("..", "", $_GET['path']);
//echo "GET confirmation est setter";
if ( isset($_GET['file']) )
$rm = $rm . "/" . str_replace("..","", $_GET['file']) ;
//echo "GET file est setter";
//echo $rootdir."/".$rm;
//$strFichier="'".str_replace("./","",$rootdir)."/".$rm."'";
//unlink("'".$strFichier."'") ;
//system("rm -r '". $rootdir . "/" . $rm . "'") ;
if(! is_dir($rootdir . "/" . $rm)){
unlink($rootdir . "/" . $rm) ;
}
else{
advRmDir($rootdir . "/" . $rm);
}
}
else
{
if( ! isset($_GET['infirmation']))
$affiche_supprimer_formulaire=true;
}
// si l'on ne supprimait pas un fichier (donc un rep, on doit retourner a la racine quelque soit la reponse
if ( ( isset($_GET['confirmation']) || isset($_GET['infirmation']) ) && ! isset($_GET['file']) )
// strip last /dirname pour retourner au parent du rep en cours
$currentdir = substr($currentdir, 0, strrpos($currentdir,"/"));
break;
case "deconnection":
break;
case "upload":
if ( ! isset($_FILES['uploadFile']) )
$affiche_upload_formulaire = true;
break;
}
// l'upload se fait en post (l'action)
if (isset($_POST['action']) && $_POST['action'] == "upload")
{
if ( isset($_FILES['uploadFile']) )
{
$file_name = $_FILES['uploadFile']['name'];
// strip file_name of slashes
$file_name = stripslashes($file_name);
if ($_POST['date'])
{
$file_name = date("Y-m-d-H\hi-") . $file_name;
}
$uploaddir = $rootdir . "/" . str_replace("..","",urldecode($_POST['path']));
$file_name = $uploaddir . "/" . str_replace("'","",$file_name);
$copy = copy($_FILES['uploadFile']['tmp_name'],$file_name);
// check if successfully copied
if( ! $copy)
{
echo basename($file_name) . " | Impossible d'uploader !
";
}
}
}
?>
<html>
<head>
<title>
Explorateur de fichier - /<?php echo $currentdir; ?>
</title>
<link href ="../style.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
.style25 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-weight: bold;
font-size: 13px;
}
.style31 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 15px;
font-weight: bold;
}
-->
</style>
</head>
"> ">
">,
<?= //Déconnecter?>
Vous êtes présentement dans le dossier : <?php
if($currentdir==""){
echo "Accueil";
}
else{
echo "Accueil"."/".$currentdir;
}
?>
<?php
if ( $affiche_creer_formulaire )
{
// affichage du formulaire pour creer un repertoire
?>
<form method="get">
" />
Nom du nouveau dossier :
</form>
<?php
}
if ( $affiche_supprimer_formulaire )
{
// affichage du formulaire pour supprimer un repertoire
?>
<form method="get">
" />
<?
if ( isset($_GET['file']) )
echo "";
?>
Voulez-vous vraiment supprimer <? echo $currentdir . "/"; if (isset($_GET['file'])) echo $_GET['file']; ?> ?
</form>
<?php
}
if ( $affiche_upload_formulaire )
{
?>
<form enctype="multipart/form-data" method="post">
Fichier à ajouter :
">
Ajouter la date dans le nom du fichier </form>
<?php
}
?>, ----
<!-- Colonne pour les repertoires -->
<table width="100%" cellpadding="0" border="0">
----,
<table width=\"100%\" height=\"30\" border=\"0\" background=\"images/fond_toolbar.gif\" class=\"tableau\" style='border:2px solid black'>
----
Dossiers
</td></tr>
<?php
$directory = opendir( $rootdir . "/" . $currentdir );
while( $dir = readdir($directory) )
{
if (is_dir( $rootdir . "/" . $currentdir . "/" . $dir) && $dir != "." )
{
// on affiche pas le .. quand on est a la racine
if( $currentdir == "" && $dir != ".." || $currentdir != "")
{
if($dir == ".."){
echo "<tr><td valign='top' height='25' colspan='2'>";
echo "" . "« Remonter d'un niveau" . "";
}
else{
echo "<tr><td valign='top' height='25'>";
echo "";
echo "</td><td valign='top' width='85%'>";
echo "" . $dir . "";
}
echo "</td><td align=right valign='top'> ";
if ( $dir != ".." )
echo "";
echo "</td></tr>\n";
}
}
}
closedir($directory);
?>
</table>
</td>
<td width=70% valign=top bgcolor="#E5E5E5" class="tableau" style='border:2px solid black'>
<!-- Colonne pour les fichiers -->
<table width=100% height="30" border=0 background="images/fond_toolbar.gif" class="tableau" style='border:2px solid black'>
----, Fichiers</td>
</td></tr>
<?php
$directory = opendir( $rootdir . "/" . $currentdir );
$foundone = false;
while( $file = readdir($directory) )
{
if (is_file($rootdir . "/" . $currentdir . "/" . $file) )
{
$foundone = true;
echo "<tr><td style='border-bottom:1px solid black;'>";
echo " " . $file . "</td><td width=30 height=35' style='border-bottom:1px solid black;' class='style17' align='center'>";
// selon l'extension du fichier
$ext = strtolower(substr($file,strrpos($file,".") + 1,strlen($file) - strrpos($file,".")));
switch($ext)
{
case "gif":
case "jpg":
case "png":
echo "";
break;
default:
if ( is_file( $imagedir . "/" . $ext . ".gif" ) )
echo "";
else
echo strtoupper($ext);
break;
}
echo " </td>";
echo "<td width=15% style='border-bottom:1px solid black;' class='style17' align='center'>".round((filesize($rootdir . "/" . $currentdir . "/" . $file )/1000))." K</td>";
echo "<td style='border-bottom:1px solid black;' align='right'> ";
echo "</td></tr>\n";
}
}
closedir($directory);
if ( ! $foundone)
{
echo "<tr><td colspan=3 align=center class='style25'>
Ce dossier ne contient aucun fichier!
</td></tr>";
}
?>
</table>
</td>
</tr>
</table>
</html>
J'espère que ça va aider quelques-uns d'entre vous!!
Je travaille présentement à rajouter une fonction qui permettra de renommer un dossier ou un fichier... je vous redonne des nouvelles dès que j'aurai trouvé la solution...
Bonne chance!
Marie-Hélène
13 nov. 2005 à 19:12
Canuel Michel...
j'ai vraiment besoin d'arriver a inserer ce code sur mon site pour echange de compo musical et sa me ferai plaisir si j'arrivai a le fair!!
11 oct. 2005 à 18:29
qqun a t-il reglé ce pb?
11 oct. 2005 à 18:14
il y a surement plus propre à faire mais voilà comment j'ai résolu ce probleme que je rencontré moi aussi...
<?php
$ext = strtolower(substr($file,strrpos($file,".") + 1,strlen($file) - strrpos($file,".")));
$directory = opendir( $rootdir . "/" . $currentdir );
$foundone = false;
while( $file = readdir($directory) )
{
if (is_file($rootdir . "/" . $currentdir . "/" . $file) )
{
$foundone = true;
echo "<tr><td width=30>";
// selon l'extension du fichier
$ext = strtolower(substr($file,strrpos($file,".") + 1,strlen($file) - strrpos($file,".")));
switch($ext)
{
case "gif":
case "jpg":
case "png":
case "tif":
case "bmp":
echo "";
break;
case "htm":
case "php":
case "html":
case "txt":
break;
default:
if ( is_file( $imagedir . "/" . $ext . ".gif" ) )
echo "";
else
echo strtoupper($ext);
break;
}
echo "</td><td>";
switch($ext)
{
case "gif":
case "jpg":
case "png":
case "tif":
case "bmp":
echo "" . $file . "";
echo "</td><td align=right width=15%>";
echo filesize($rootdir . "/" . $currentdir . "/" . $file );
echo " ";
echo "</td></tr>\n";
break;
case "htm":
case "php":
case "html":
case "txt":
break;
}
}
}
closedir($directory);
if ( ! $foundone)
{
echo "<tr><td colspan=3 align=center>Aucun fichier !</td></tr>";
}
?>
je ne fait que debuter en php donc il y a surement plus inteligent à faire...
a+
7 oct. 2005 à 20:25
merci à l'auteur et à tous les participants de ce très bon script.
J'en suis très content et il fonctionne parfaitement même personnalisé et skinné.
Cependant, une modif reste au-dessus de mes compétences, je cherche à cacher un format de fichier du listing pour en éviter la suppression. Comment faire, j'ai bien essayé quelques modifs mais n'y arrive pas.
Je voudrais que les *.php et *.html ne soient pas visibles... ou visibles mais alors non effaçables !
Merci pour votre aide
elkava
28 sept. 2005 à 17:23
Après installation, voici les messages d'erreurs !!
Notice: Undefined index: path in c:\program files\easyphp1-8\www\navigation\index.php on line 11
Notice: Undefined index: action in c:\program files\easyphp1-8\www\navigation\index.php on line 39
Quelqu'un a une idée ?
D'avance merci.
28 sept. 2005 à 14:23
tout fonctionne parfaitment chez moi. J'essais de modifier le code pour que le nom des répertoires créés s'insère dans un bdd. Au niveau du formulaire de création de répertoire j'ai ajouter le code suivant :
<?php
//connection au serveur
$cnx = mysql_connect(SERVEUR, USER, PASS, DB) ;
//sÈlection de la base de donnÈes:
$db = mysql_select_db(DB) ;
//rÈcupÈration des valeurs des champs:
$nom_rep = $_POST['arg'] ;
?>
<?php
if ( $affiche_creer_formulaire )
{
// affichage du formulaire pour creer un repertoire
?>
<hr>
<form method="get">
" />
Nom du repertoire :
</form>
<?php $sql = "INSERT INTO rep (nom_rep)
VALUES ( '$nom_rep') " ;
$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
?>
<?php
}
Le problème est que la méthode utilisée par le formulaire est GET, donc j'ai essayé de tout passer en POST mais sans succès.
Je précise que je suis débutant, donc si quelques peut répondre à mon problème ou du moins m'expliquer...merci...
22 sept. 2005 à 20:03
ca fait 3 jours que je cherche mais en vain ... je suis débutant en PHP et j'essaie de me débrouiller mais là !...
j'ai essayé ta solution et j'arrive à supprimer des fichiers mais pas des répertoires ...
voici le code complet :
<?php
function advRmDir($dir)
{
if( !preg_match( "/^.*\/$/", $dir ) )
{
$dir .= '/';
// Ouverture du repertoire demande
$handle = @opendir( $dir );
// si pas d'erreur d'ouverture du dossier on lance le scan
if( $handle != false )
{
// Parcours du repertoire
while( $item = readdir($handle) )
{
if($item != "." && $item != "..")
{
if( is_dir( $dir.$item ) )
{
advRmDir( $dir.$item );
}
else
{
unlink($dir.$item);
}
}
}
// Fermeture du repertoire
closedir($handle);
// suppression du repertoire
$res = rmdir( $dir );
}
}
}
$rootdir = "./documents";
$imagedir = "./images";
if ( ! is_dir($rootdir) )
{
echo "Impossible d'acceder a $rootdir ! Contactez moi";
die();
}
$currentdir = $_GET['path'];
// on tronque le debut si c'est un /
if ( substr($currentdir,0,1) == "/" )
{
$currentdir = substr($currentdir,1,strlen($currentdir) - 1);
}
// si la fin de $currentdir = .. alors on retourne a la racine de ce dossier
if ( substr($currentdir, strlen($currentdir) - 2, 2) == ".." )
{
// strip last /..
$currentdir = substr($currentdir, 0, strlen($currentdir) - 3);
// strip last /dirname
$currentdir = substr($currentdir, 0, strrpos($currentdir,"/"));
}
// si la fin de $currentdir = /. alors on retourne a la racine de ce dossier
if ( substr($currentdir, strlen($currentdir) - 2, 2) == "/." )
{
$currentdir = substr($currentdir, 0,strlen($currentdir) - 2);
}
// evite tout probleme de securite MAIS empeche les noms de rep avec .. dedans
$currentdir = str_replace("..", "", $currentdir);
// on traite les actions spéciales
$action = $_GET['action'];
switch($action)
{
case "mkdir":
if ( isset($_GET['arg'] ) )
{
// evite tout probleme de securite MAIS empeche les noms de rep avec .. dedans
$mkdir = str_replace("..", "", $_GET['arg']);
umask (0);
mkdir($rootdir . "/" . $currentdir . "/" . $mkdir);
}
else
{
$affiche_creer_formulaire = true;
}
break;
case "rm";
if ( isset($_GET['confirmation'] ) )
{
// evite tout probleme de securite MAIS empeche les noms de rep avec .. dedans
$rm = str_replace("..", "", $_GET['path']);
if (isset($_GET['file']))
$rm = $rm . "/" . str_replace("..","", $_GET['file']) ;
if(! is_dir($rootdir . "/" . $rm))
{
unlink($rootdir . "/" . $rm) ;
}
else
{
advRmDir($rootdir . "/" . $rm);
}
}
else
{
if( ! isset($_GET['infirmation']))
$affiche_supprimer_formulaire=true;
}
// si l'on ne supprimait pas un fichier (donc un rep, on doit retourner a la racine quelque soit la reponse
if ( ( isset($_GET['confirmation']) || isset($_GET['infirmation']) ) && ! isset($_GET['file']) )
// strip last /dirname pour retourner au parent du rep en cours
$currentdir = substr($currentdir, 0, strrpos($currentdir,"/"));
break;
// case "deconnection":
// break;
case "upload":
if ( ! isset($_FILES['uploadFile']) )
$affiche_upload_formulaire = true;
break;
}
// l'upload se fait en post (l'action)
if (isset($_POST['action']) && $_POST['action'] == "upload")
{
if ( isset($_FILES['uploadFile']) )
{
$file_name = $_FILES['uploadFile']['name'];
// strip file_name of slashes
$file_name = stripslashes($file_name);
if ($_POST['date'])
{
$file_name = date("Y-m-d-H\hi-") . $file_name;
}
$uploaddir = $rootdir . "/" . str_replace("..","",urldecode($_POST['path']));
$file_name = $uploaddir . "/" . str_replace("'","",$file_name);
$copy = copy($_FILES['uploadFile']['tmp_name'],$file_name);
// check if successfully copied
if( ! $copy)
{
echo basename($file_name) . " | Impossible d'uploader !
";
}
}
}
?>
<html>
<head>
<title>
Explorateur de fichier
</title>
</head>
<table width =100%>
----,
\">Retour au répertoire racine |
\">Créer un nouveau répertoire |
\">Uploader un fichier
</td>
<?php
if ( $affiche_creer_formulaire )
{
// affichage du formulaire pour creer un repertoire
?>
<hr>
<form method="get">
" />
Nom du repertoire :
</form>
<hr>
<?php
}
if ( $affiche_supprimer_formulaire )
{
// affichage du formulaire pour supprimer un repertoire
?>
<hr>
<form method="get">
" />
<?
if ( isset($_GET['file']) )
echo "";
?>
Supprimer <? echo $currentdir ; if (isset($_GET['file'])) echo $_GET['file']; ?> ?
</form>
<hr>
<?php
}
if ( $affiche_upload_formulaire )
{
?>
<hr>
<form enctype="multipart/form-data" method="post">
Fichier :
">
Dater le fichier
</form>
<hr>
<?php
}
?>
</td>
</tr>
<tr>
<td valign=top width=20%>
Répertoires
<hr>
<?php
$directory = opendir( $rootdir . \"/\" . $currentdir );
while( $dir = readdir($directory) )
{
if (is_dir( $rootdir . \"/\" . $currentdir . \"/\" . $dir) && $dir != \".\" )
{
// on affiche pas le .. quand on est a la racine
if( $currentdir == \"\" && $dir != \"..\" || $currentdir != \"\")
{
echo \"----
";
echo "";
echo ", ";
echo "" . $dir . "";
echo ", <td align=right>\";
if ( $dir != \"..\" )
{
echo \"
\";
}
echo \"\n\";
}
}
}
closedir($directory);
?>
</td>
<td valign=top width=80%>
Extensions
,
Noms des fichiers
,
Taille en octects
,
<!---->
<hr>
<?php
$directory = opendir( $rootdir . \"/\" . $currentdir );
$foundone = false;
while( $file = readdir($directory) )
{
if (is_file($rootdir . \"/\" . $currentdir . \"/\" . $file) )
{
$foundone = true;
echo \"----
";
// selon l'extension du fichier
$ext = strtolower(substr($file,strrpos($file,".") + 1,strlen($file) - strrpos($file,".")));
switch($ext)
{
case "gif":
case "jpg":
case "png":
case "jpeg":
case "bmp":
echo strtoupper($ext);
break;
default:
echo strtoupper($ext);
break;
}
echo ", ";
echo "" . $file . "";
echo ", ";
echo filesize($rootdir . "/" . $currentdir . "/" . $file );
echo ", ";
echo "";
echo ", \n\";
}
}
closedir($directory);
if ( ! $foundone)
{
echo \"----
Attention : Aucun fichier dans ce repertoire !, \";
}
?>
</td>
</tr>
</table>
</html>
Merci pour aide très précieuse !...
22 sept. 2005 à 18:51
moi aussi au départ ça ne fonctionnait pas la fonction supprimer, mais voici les changements que j'ai apportés :
voici le bon code qui fonctionne peu importe le nombre de sous-dossiers et de fichiers :
à placer dans le haut de la page dans la balise php :
function advRmDir($dir)
{
if( !preg_match( "/^.*\/$/", $dir ) ) $dir .= '/';
// Ouverture du repertoire demande
$handle = @opendir( $dir );
// si pas d'erreur d'ouverture du dossier on lance le scan
if( $handle != false )
{
// Parcours du repertoire
while( $item = readdir($handle) )
{
if($item != "." && $item != "..")
{
if( is_dir( $dir.$item ) )
advRmDir( $dir.$item );
else unlink( $dir.$item );
}
}
// Fermeture du repertoire
closedir($handle);
// suppression du repertoire
$res = rmdir( $dir );
}
}
Remplacer la ligne unlink ou system("rm"....) par
if(! is_dir($rootdir . "/" . $rm)){
unlink($rootdir . "/" . $rm) ;
}
else{
advRmDir($rootdir . "/" . $rm);
}
si t'a besoin d'aide, n'hésite pas... c'est akatopaz qui a fait le code à la base (suppression qui fonctionne pas), mais comme il n'a pas l'air très intéressé à aider les autres...
22 sept. 2005 à 10:15
merci à l'auteur pour cette source super pratique ... même si la supression de fonctionne pas bien :-(
je suis sur un projet et j'aimerais pouvoir supprimer les dossiers ? Est ce que quelqu'un à une idée ???
je sais que c'est la fonction rmdir() mais je ne sais pas comment l'adapter au code (qui marche bien) de Emmash !
Merci à tous de votre prochaine aide !...
20 août 2005 à 23:47
je regarde ca de plus près mais en tout cas merci
10 août 2005 à 19:57
à placer dans le haut de la page dans la balise php :
function advRmDir($dir)
{
if( !preg_match( "/^.*\/$/", $dir ) ) $dir .= '/';
// Ouverture du repertoire demande
$handle = @opendir( $dir );
// si pas d'erreur d'ouverture du dossier on lance le scan
if( $handle != false )
{
// Parcours du repertoire
while( $item = readdir($handle) )
{
if($item != "." && $item != "..")
{
if( is_dir( $dir.$item ) )
advRmDir( $dir.$item );
else unlink( $dir.$item );
}
}
// Fermeture du repertoire
closedir($handle);
// suppression du repertoire
$res = rmdir( $dir );
}
}
Remplacer la ligne unlink ou system("rm"....) par
if(! is_dir($rootdir . "/" . $rm)){
unlink($rootdir . "/" . $rm) ;
}
else{
advRmDir($rootdir . "/" . $rm);
}
Bon ça devrait tout fonctionner!!
10 août 2005 à 19:40
j'ai essayé avec ta ligne de code unlink, mais j'ai remarqué que ça ne fonctionnait que sur des fichiers...
j'ai fais des tests de mon côté et j'ai remplacé ta ligne de code par une alternative qui vérifie si ce qui est à supprimer est un dossier ou un fichier... si c'est un fichier, la ligne de code unlink sera utilisé sinon on utilisera une boucle qui supprime tout le contenu du dossier à supprimer et ensuite supprime le dossier...
voilà c'est tout!!
J'espère que ça pourra t'aider!!
Merci pour ton aide ;)
Voici le code qui remplace ta ligne de code unlink :
if(! is_dir($rootdir . "/" . $rm)){
unlink($rootdir . "/" . $rm) ;
}
else{
// suppression avancee d'un repertoire
//
// DESCRIPTION
// > permet de supprimer un dossier meme s'il n'est pas vide. Le script explore tout le contenu et le supprime
// > avant de supprimer le dossier.
//
// >> Parametres d'entree :
// > $dir : STRING / chemin d'acces au dossier a supprimer
//
// >> Parametre de sortie : BOOLEEN / TRUE si dossier supprime, FALSE en cas d'erreur
// ajout du slash a la fin du chemin s'il n'y est pas
$dir = $rootdir . "/" . $rm;
if( !preg_match( "/^.*\/$/", $dir ) ) $dir .= '/';
// Ouverture du repertoire demande
$handle = @opendir( $dir );
// si pas d'erreur d'ouverture du dossier on lance le scan
if( $handle != false )
{
// Parcours du repertoire
while( $item = readdir($handle) )
{
if($item != "." && $item != "..")
{
if( is_dir( $dir.$item ) )
advRmDir( $dir.$item );
else unlink( $dir.$item );
}
}
// Fermeture du repertoire
closedir($handle);
// suppression du repertoire
$res = rmdir( $dir );
}
}
9 août 2005 à 22:36
a la place de
system("rm -r '". $rootdir . "/" . $rm . "'") ;
mettre
unlink($rootdir . "/" . $rm) ;
9 août 2005 à 19:25
ptet que si quelqu'un passe par là on aura un début de solution
merci d'avance
9 août 2005 à 18:16
en faisant d'autres tests j'ai remarqué, moi aussi, que la suppression en fonctionnait pas... j'attend toujours une réponse de la part de l'auteur...!!
9 août 2005 à 00:25
sinon chez moi la fonction pour supprimer un dossier ou un fichier ne fonctionne pas...
quelqu'un à une solution ? peut-être n'ai-je pas les droits suffisant ?
4 août 2005 à 21:15
Bon travail et continue comme ça!