Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1532 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [RESOLU]ouvrir un répertoire sélectionné et lister

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU]ouvrir un répertoire sélectionné et lister

n°1504763
vichenzo
Posté le 18-01-2007 à 20:01:04  profilanswer
 

salut à tous,
 
Voilà je dois faire un gestionnaire de fichier en PHP avec session multiutilisateur....jusque là pas de problème. Lorsque l'utilisateur s'enregistre la 1ere fois je  ca crée un répertoire à son nom dans lequel il va enregistrer ses fichiers. J'arrive donc à afficher le contenu de ces répertoire pour chaque utilisateur.  
Là où ça se gate, c'est quand il a un répertoire dedans. Je n'arrive pas à l'ouvrir.  
 
le contenu de son répertoire est listé en tableau. S'il y a un autre répertoire dedans je voudrais pouvoir afficher son contenu...mais je n'arrive pas à paramétrer mon <HREF="<?...?>"></a> pour qu'il ouvre le répertoire sur lequel j'ai mon curseur...
 
Peut être avez vous une petite idée??? :love:


Message édité par vichenzo le 20-01-2007 à 13:48:41
mood
Publicité
Posté le 18-01-2007 à 20:01:04  profilanswer
 

n°1504858
zapan666
Tout est relatif
Posté le 19-01-2007 à 00:55:34  profilanswer
 

tu rapelle ta fonction sur ce nouveau répertoire (fonction récursive donc)
 

n°1505208
vichenzo
Posté le 19-01-2007 à 18:00:57  profilanswer
 

zapan666 a écrit :

tu rapelle ta fonction sur ce nouveau répertoire (fonction récursive donc)


 
je pense qu'avec mon code ça sera plus facile :

Code :
  1. <TABLE border=1 WIDTH=100% CELLSPACING="1">
  2. <TR>
  3. <?
  4. $rep=opendir("rep_utilisateurs/$pseudo" );
  5. chdir("rep_utilisateurs/$pseudo" ); // chdir signifie "rends toi physiquement ds le rep"
  6. if ($handle = opendir('.'))
  7. {
  8. while (false !== ($fichier=readdir($rep)))
  9. {
  10.  if ($fichier != "." && $fichier != ".." )
  11.   {
  12.   if (is_dir($fichier))
  13.    {
  14.    ?>
  15.    <TD BGCOLOR=#A9A9A9><A HREF="<?
  16.    ////////////////////////////////////////////////////
  17. c'est ici que je voudrais  pouvoir cliquer et aller dans le répertoire dans sur lequel je clique
  18.    ////////////////////////////////////////////////////
  19.    ?>"><IMG SRC="images/dir.gif" border="0"></a></TD>
  20.    <TD BGCOLOR=#A9A9A9> <? echo $fichier; //si un répertoire j'affiche son nom...?></TD>
  21.    <TD BGCOLOR=#A9A9A9></TD>
  22.    <?
  23.    }
  24.   else
  25.    {
  26.    ?>
  27.    <TD BGCOLOR=#DCDCDC>
  28.    <?
  29.     $ext = GetExtension($fichier);
  30.     $ext = strtolower($ext);
  31.     $icone = GetIcone($ext);
  32.    ?>
  33.    <IMG SRC ="images/<? echo $icone ?>">
  34.    </TD>
  35.    <TD BGCOLOR=#DCDCDC WIDTH=100%> <?
  36.    ///////////////////////////////////////////////////////////////
  37.                                  /////ici pb pour ouvrir le fichier selectionné///////////////////
  38.                        echo "<A HREF=\"$fichier\">" . $fichier . "</a>"?>
  39.    <?
  40.    <TD BGCOLOR=#DCDCDC NOWRAP> <?
  41.    $taille = filesize($fichier);
  42.    if ($taille < 1024)
  43.     {
  44.      $tmp = number_format($taille)." octets";
  45.     }
  46.    elseif ($taille > 1024 && $taille < 1048576)
  47.     {
  48.      $tmp = number_format($taille / 1024)." Ko";
  49.     }
  50.    elseif ($taille > 1048576 && $taille < 1073741824)
  51.     {
  52.      $tmp = number_format(($taille / 1048576), 2)." Mo";
  53.     }
  54.    echo $tmp;
  55.    ?>
  56.    </TD>
  57.    <?
  58.    }
  59.   }
  60.   ?>
  61.  </TD>
  62. </TR>
  63. <? }
  64. }
  65. closedir($handle);?>
  66. </TABLE>


En fait je m'emele les pinceaux avec mes session...car dans un premier temps j'ouvre le reperrtoire de l'utilisateur concerné et ça marche...mais après pour ouvrir les sous répertoires j'ai du mal...
Je crois que je me complique trop l'esprit..
 :(

n°1505213
zapan666
Tout est relatif
Posté le 19-01-2007 à 18:23:29  profilanswer
 

Transforme ça en procédure avec en paramètre un répertoire.
 

Code :
  1. function exploreRepertoire( $repertoire ) {
  2. // ton code
  3. $rep=opendir($repertoire);
  4. ...
  5. }


 
et lors de la première utilisation tu mets :  
 

Code :
  1. exploreRepertoire("rep_utilisateur/".$pseudo);


 
et dans ta procédure ( exploreRepertoire ), quand tu tombe sur un répertoire, tu rappel la procédure avec ce nouveau répertoire:  

Code :
  1. if (is_dir($fichier)) {
  2. exploreRepertoire($fichier);
  3. }


n°1505214
omega2
Posté le 19-01-2007 à 18:27:01  profilanswer
 

met dans une fonction toute la partie qui va de "j'ouvre le répertoire" (opendir) jusqu'au "je referme le répertoire" (closedir).
Ensuite, en paramettre de la fonction, tu passe le nom et chemin du dossier à ouvrir ainsi que le niveau d'imbrication.
De cette maniére tu pouras parcourir plusieurs dossier à la fois vu que pour chaque dossier la fonction sera lancé une fois et que chaque exécution de la fonction conaitra ces variables à elle et pas celles du lancement d'avant ou d'aprés.
 
Le niveau d'imbrication passé en paramettre peut servir à faire un décalage quand tu changes de dossier. Il peut aussi servir à éviter de boucler indéfiniment en sortant de la fonction dés qu'on a passé un certain nombre d'imbrication.
 
A noter qu'il ne faut pas rentrer dans les dossiers '..' et '.' qui sont respectivement le dossier pére et le dossier courant. Dans les deux cas, tu te retrouverais à boucler indéfiniment.
 
Petite remarque en passant : les tables html ne sont pas faite pour cette utilisation là. Elles sont faites pour afficher de vrai tableaux. Utilise plustôt les listes html vu que tu cherches à afficher des listes de fichiers et dossiers. En rajoutant un peu de css, tu peux leur enlever la vignette et retomber sur un affichage semblable à ce que t'as déjà. Les deux principaux avantages à utiliser des listes plustôt que des tableaux, c'est que la page sera moins lourdes (donc moins de bande passante dépensé et plus de rapidité à la récupération et à l'affichage) et surtout que les navigateurs pour malvoyants pouront indiquer les choses comme il faut vu que la sémantique des balises sera respecté.

n°1505215
vichenzo
Posté le 19-01-2007 à 18:36:12  profilanswer
 

ok merci beaucoup les gars je vais essayer de faire tout ça...merciiii

n°1505321
vichenzo
Posté le 20-01-2007 à 13:48:05  profilanswer
 

C'est bon ça marche merci beaucoup!

n°1505323
nicodu95
Posté le 20-01-2007 à 14:01:55  profilanswer
 

tu as essayer la fonction scandir(); ?

n°1505351
vichenzo
Posté le 20-01-2007 à 15:57:38  profilanswer
 

non je n'ai pas essayé cette fonction...mais j'ai fais comme il m'a été conseillé...j'ai crée une fonction que je rappelle chaque fois que j'ai besoin...et emballé c'est pesé :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [RESOLU]ouvrir un répertoire sélectionné et lister

 

Sujets relatifs
[JAVA/JSP] Formulaire JSP/Servlet - Conservations de données [Resolu][résolu] Ajax et erreur de syntaxe
[Résolu] Comment envoyer un fichier sur un serveur (client ftp)[Résolu] [Charset] Gros pb entre UTF8 et ISO ?
[Resolu] Probleme redirection .htaccess[RESOLU] Afficher / Masquer des DIV
Fenetre qui apparait au survol d'un lien (résolu)Taille de buffer? [Résolu]
pb de conception hibernate ... [RESOLu][Résolu]if qui ne fonctionne pas
Plus de sujets relatifs à : [RESOLU]ouvrir un répertoire sélectionné et lister


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR