lister contenu dossier présent sur le réseau

Eléphant du PHP | 335 Messages

29 août 2005, 14:21

Bonjour a tous,

J'ai récupéré un code sur internet permettant de lister le contenu d'un dossier.

Ce code marche très bien mais j'ai rencontré un probleme.

En effet dans la ligne ou il faut indiquer le chemin du dossier à lister lorsque je rentre un dossier présent sur ma machine aucun problème.
Par contre lorsque je rentre le chemin d'un dossier présent sur le réseau, la ca ne marche plus!!

Je ne comprends pas pourquoi...
Pouvez vous m'aider?

Merci

Eléphant du PHP | 335 Messages

29 août 2005, 15:48

Personne ne sait?

Mammouth du PHP | 543 Messages

29 août 2005, 16:09

Fais nous deja voir le bout de code que tu as, mais theoriquement on ne peut pas lister un répertoire distant par defaut.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

29 août 2005, 16:09

non

comment entres-tu l'url pour accéder au fichier ?
ce ne serait pas un problème de droits ?

Eléphant du PHP | 335 Messages

29 août 2005, 16:23

Voci un bout de code :
<? 
$rep = "chemin";
$dir = opendir($rep); 
?>
Lorsque je rentre kle chemin du dossier voulu et que j'execute le code, j'ai un message d'erreur me disant
Warning: opendir(chemin): failed to open dir: Invalid argument

Eléphant du PHP | 335 Messages

29 août 2005, 17:05

alor c'est possible ou pas??

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

29 août 2005, 17:25

je ne sais pas, je n'ai jamais essayé :roll:

et tu n'as pas répondu à mon post...

Eléphant du PHP | 199 Messages

29 août 2005, 17:44

Je pense que c'est possible en utilisant les sockets vu que TCP et UDP sont supportés par PHP. Tu dois donc analyser les trames réseaux pour lister les PC d'un réseau local ainsi que leur fichiers.

En tout cas, si je trouve la documentation sur trames qui traitent de ca je posterai ici :wink:
Les 2 font la paire : coder ET commenter :wink:

Eléphant du PHP | 335 Messages

29 août 2005, 17:45

Je ne pense pas que ce soit un probleme de droits car lorsque je fais un lien tout simple sur un fichier présent sur le réseau :

Code : Tout sélectionner

<a href="file:///O|/DOC_ARN/DOCUQUAL/Documents Accueil/ANNUAIREtéléphonique.xls" target="_blank">annuaire téléphonique</a>
Lorsque je clique sur ce lien, le fichier s'ouvre.

Eléphant du PHP | 199 Messages

29 août 2005, 17:46

:arrow: En tout cas il y a Ethereal qui peut capturer les trames :)
Les 2 font la paire : coder ET commenter :wink:

Eléphant du PHP | 138 Messages

05 sept. 2005, 19:54

Salut Justone

J'ai aussi le même Pb que toi avec le meme message d'erreur.
Par contre on arrive à faire un listing du dossier racine ( sur le site distant , pas en local). mais Sur les ss dossiers on obtient seulement quelques fichiers au lieu de la totalité.

Pour info voici mon code: esssaye le si tu veux et tiens moi au courant.
<html>
 <head>
  
 </head>
 <body>
 <?php
////////////////////////////////////////////////////////
// fonction list_rep pour lister le contenu
// d'un repertoire
// $rep           nom du repertoire
// $ssrep         regarde dans les sous repertoires
// $avec_dossier  0=> n'affiche que les fichiers
//                1=> affiche les dossiers et fichiers
//                2=> n'affiche que les dossiers
///////////////////////////////////////////////////////
function list_rep($rep, $ssrep=1, $avec_dossier=0){
  if ( !isset($rep) ) { $handle = '.'; } //chercher à la racine
  if ($handle = opendir($rep)) {
      while (false !== ($file = readdir($handle))) {
          if ($file != "." && $file != "..") {
              if ( is_dir($file) ) {
                //si dossier ecrit le nom si demande
                if ( $avec_dossier == 1 || $avec_dossier == 2) { echo $file."<br>\n"; }
                //ecrit les fichiers si demande
                if ( $ssrep == 1) { list_rep($file, $ssrep, $avec_dossier); }
              }
              elseif ( is_file($file) ) {
              //si c'est un fichier et que l'option juste dossier pas demande, il l'ecrit
                if ( $avec_dossier != 2) { echo $file."<br>\n"; }
              }
          }
      }
      closedir($handle);
  }
}
echo "on commence <br/>";
list_rep("mettre ton repertoire racine", 0, 1);
?>
 </body>
</html>
@+
Il y a des gens qui ont une bibliothèque comme des eunuques ont un harem (V. Hugo)

lanfeust
Invité n'ayant pas de compte PHPfrance

20 sept. 2005, 08:59

Sauf que chez moi, je peux accèder à des repertoires distants sous easyphp, mais pas sous wamp...
Je pencherai donc vers un pb de config du php.ini, ou d'un problème avec php5... ???

Invité
Invité n'ayant pas de compte PHPfrance

17 janv. 2006, 17:56

j'ai eu le meme pb, apparemment, ce n'est pas opendir qui ne marche pas, mais is_dir
je ne vois donc pas comment le dernier script pourrait marcher.

J'utilise aussi wamp, donc je vais me pencher sur la question des fichiers de conf (a moins que ce soit des versions de php différents)

Si quelqu'un avait une solution....

Gimli

Invité
Invité n'ayant pas de compte PHPfrance

24 janv. 2006, 09:47

j'ai finalement trouvé la solutiuon. Il suffit d'aller dans le gestionnaire de services de windows, et de changer la manière dont se connecte wampapache. Il suffit de rentrer une session windows qui a les droits sur le répertoire reseau et non pas le compte local

Gimli