Aide script d'interface gestion serveur

Maxime44710
Invité n'ayant pas de compte PHPfrance

04 juin 2008, 12:45

Bonjour !
Alors voilà, j'aurais besoin d'aide afin de terminer une interface de gestion de serveur pour mes client avec :

-Upload de fichier
-Création de dossier
-Effacement de dossier
-Effacement de fichier

Alors voilà où j'en suis : http://wolfsite.fr/test/test.php

Le code de ma page :
<?php 
// ------------- Script création de dossier   
if(isset($_POST['creation']) && !empty($_POST['nom']))  
    {  
        //Si un nom de dossier est envoyé, on crée un dossier au bon endroit  
        $chemin = $_POST['chemin']; //Récupéré dans le champ caché
        if(empty($chemin)){$chemin = './';} //Si il est vide, on est à la racine
        mkdir($chemin.'/'.$_POST['nom'],0777);
        header("Location:test.php?chemin=".$chemin);          
    } 
elseif(isset($_POST['creation']) && empty($_POST['nom']))  
    { 
        //Si le nom du dossier est vide 
        header("Location:test.php?error=nomvide"); 
    } 

if(isset($_POST['uploader']))
    {
        if(!empty($_FILES["fichier_choisi"]["name"])) 
            {   
                $chemin = $_POST['chemin']; //Récupéré dans le champ caché 
                if(empty($chemin)){$chemin = '/';} //Si il est vide, on est à la racine 
                      
                  if(move_uploaded_file($_FILES["fichier_choisi"]["tmp_name"],$chemin.'/'.$_FILES["fichier_choisi"]["name"]))
                      {
                          header("Location:test.php?chemin=".$chemin);  
                      }
                  else
                      {  
                        //Si on n'a rien uploadé 
                        header("Location:test.php?error=bigerror");  
                    }        
            }  
        else   
            {  
                //Si on n'a rien uploadé 
                header("Location:test.php?error=upload");  
            }  
    } 
	
//Si on reçoit l'erreur de nom de dossier vide 
if(isset($_GET['error']) && $_GET['error'] == 'nomvide') 
   {
       echo 'Une erreur est survenue. Le nom du dossier à créer était vide'; 
   } 

// ----------- Ecriture de la liste des fichiers et dossiers

//Récupération du dossier courant
if(isset($_GET['chemin']) && !empty($_GET['chemin']))
    {
        $folder = $_GET['chemin'].'/';
    }
else
    {
        $folder = './'; //Si jamais il n'y a pas de GET, on commence à la racine
    } 

?>
<style type="text/css">
<!--
.Style2 {
	font-size: 12px;
	font-weight: bold;
	font-family: Arial, Helvetica, sans-serif;
}
.Style4 {font-size: 12px; font-weight: bold; font-family: Arial, Helvetica, sans-serif; color: #990000; }
.Style5 {
	color: #000000;
	font-style: italic;
}
-->
</style>
 


 <form name="formulaire_upload" enctype="multipart/form-data" method="post" action="test.php">
   <p>&nbsp;</p>
   <table width="686" height="137" border="0">
     <tr>
       <td width="340" height="120" bgcolor="#003399">  <input type="hidden" name="chemin" value="<?php echo $_GET['chemin'];?>">
     <span class="Style2">Upload ce fichier :     </span><br />
     <input type="file" name="fichier_choisi">
     <br>
     
     <br />
     <input type="submit" name="uploader" value="Uploader"> </td>
       <td width="336" bgcolor="#990000"><span class="Style2">Création d'un dossier :</span><br /> 
         <input type="text" name="nom">
     <br />
     <br />   
     <input type="submit" name="creation" value="Créer">   
       </p></td>
     </tr>
   </table>
   </form>  

 <table width="690" height="175" border="0">
   <tr>
     <td width="342" height="171"> <input type="hidden" name="chemin" value="<?php echo $_GET['chemin'];?>"><span class="Style4">Contenu de<span class="Style5"> /teamclashtek<?php echo $_GET['chemin'];?> :</span></span><br />
     <?php
 $dossier = opendir($folder); 
while ($Fichier = readdir($dossier))
    { 
        if($Fichier != '.' && $Fichier != '..')
            {  
                //Si le fichier est un dossier, on mets un lien pour aller dedans
                if(is_dir($folder.$Fichier))
                    {
                        echo '<a href="test.php?chemin='.$folder.$Fichier.'">'.$Fichier.'</a><br>';
                    }
                //Si le fichier n'est pas un dossier, on l'affiche normalement
                else
                    {
                        echo $Fichier.'<br>';    
                    } 
            } 
    } 
closedir($dossier); 

?></td>
     <td width="338"> <p><span class="Style4">Dossier</span><br />
        <?php
 $dossier = opendir($folder); 
while ($Fichier = readdir($dossier))
    { 
        if($Fichier != '.' && $Fichier != '..')
            {  
                //Si le fichier est un dossier, on mets un lien pour aller dedans
                if(is_dir($folder.$Fichier))
                    {
					
                        echo $_SERVER['PHP_SELF'];
                    }
           
            } 
    } 
closedir($dossier); 

?> 
     </p>
       </td>
   </tr>
 </table>
 <br /><br />
Bon ma première question étant :

Pour la colonne dossier à droite, comment y afficher tous les dossiers et sous dossier d'un dossier ^^?

C'est à dire, si dans un dossier appeler Dossierclient, il y a un dossier appeler Dossier1 qui a un sous dossier "sous dossier1" il faut que sa apparaisse :

---------------------Dossierclient
--------------Dossier1
--sousdossier1

etc...

(il faut qu'on puisse y acceder aussi)

ViPHP
ViPHP | 928 Messages

04 juin 2008, 13:55

Il faut faire une fonction récursive, c'est à dire qui s'appelle elle même. Un exemple simple pour lister une arborescence de dossiers :
function tree($path)
{
	$fd = opendir($path);
	while ($file = readdir($fd))
	{
		if ($file != '.' && $file != '..')
		{
			if (is_dir($path . $file))
			{
				echo $dir . '<br />';
				tree($path . $file . '/');
			}
		}
	}
}
tree('./');

Maxime44
Invité n'ayant pas de compte PHPfrance

05 juin 2008, 15:50

J'ai tester rien ne s'affiche !