un code a modifier... listage fichier

un code a modifier... listage fichier - PHP - Programmation

Marsh Posté le 03-08-2005 à 20:40:38    

Bonjour à tous!!
 
Alors, voila j'ai ce code, pour lister les fichiers présents dans un certain répertoire...
 

Citation :

<?
 $rep = "http://bfvww2.free.fr/upload/sons/";
$dir = opendir($rep);
 
while ($f = readdir($dir)) {
  if(is_file($rep.$f)) {
     echo "- ".$f;
      echo "<BR></BR>";
     }else{
     echo("Rien!" );
        }
} ?>


 
Seulement, ce code n'affiche que les fichiers et leurs extensions... Je voudrais que cela les fasse devenir cliquable, où quand on cliquerait, cela pourrait télécharger le fichier, ou aller a l'url précise du fichier... Comment faire cela?
 
merci beaucoup d'avance!

Reply

Marsh Posté le 03-08-2005 à 20:40:38   

Reply

Marsh Posté le 03-08-2005 à 20:46:51    

oula...

Code :
  1. <?
  2. $rep = "http://bfvww2.free.fr/upload/sons/";
  3. $dir = opendir($rep);
  4. while ($f = readdir($dir)) {
  5.   if(is_file($rep.$f)) {
  6.      echo "<a href=\"".$rep.$f."\">- ".$f."</a>";
  7.       echo "<BR></BR>";
  8.      }else{
  9.       echo("Rien!" );
  10.      }
  11. }
  12. ?>


 
Petite question comme ça, tu croyais quand même pas que php ou ton explorer allaient devinner qu'il fallait mettre un lien sur les noms de fichiers quand même?


Message édité par dwogsi le 03-08-2005 à 20:49:59

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 03-08-2005 à 20:48:12    

c'est sa?
 
# <?  
# $rep = "http://bfvww2.free.fr/upload/sons/";  
# $dir = opendir($rep);  
#  
# while ($f = readdir($dir)) {  
#   if(is_file($rep.$f)) {  
#      echo "<a href=\"".$rep.$f."\">- ".$f."</a>";  
#       echo "<BR></BR>";  
#      }else{  
#      echo("Rien!" );  
#         }  
# } ?>

Reply

Marsh Posté le 03-08-2005 à 20:50:28    

ah oui pardon j'ai eus un petit problème de copier/coller, voilà c'est corrigé.
 


C'est ça?


Message édité par dwogsi le 03-08-2005 à 20:52:30

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 03-08-2005 à 20:55:33    

excuse moi pour l'orthographe ^^ pour la ptite question, non justement, j'avais déjà testé le code ^^

Reply

Marsh Posté le 03-08-2005 à 20:59:15    

Bah je vois pas pourquoi ça marcherait pas...
Étrange...


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 03-08-2005 à 21:00:55    

regarde, ton code m'affiche ceci, à l'écran:
 
Rep "Divers":
- ".$f.""; echo "
 
"; }else{ echo("Rien!" ); } } ?>

Reply

Marsh Posté le 03-08-2005 à 21:04:46    

t'as dû avoir un problème en le copiant, chez moi ca marche très bien...
Par contre ce qui ne va pas c'est que ton code affiche "rien!" s'il tombe sur un répertoire, même si il y a des fichiers, ton else est mal placé.


Message édité par dwogsi le 03-08-2005 à 21:06:15

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 03-08-2005 à 21:07:43    

non j'ai cérifié... regarde:
http://bfvww2.free.fr/upload/musique/cont.zip c'est ma page, test la pour voir...

Reply

Marsh Posté le 03-08-2005 à 21:08:15    

tu peux me rectifier le code pour le else?

Reply

Marsh Posté le 03-08-2005 à 21:08:15   

Reply

Marsh Posté le 03-08-2005 à 21:29:16    

atan, je ne peux accéder a mon répertoire, car le dossier upload ne peut etre mis en CHMOD 777

Reply

Marsh Posté le 03-08-2005 à 21:34:10    

Normal c'est free, connaissent pas les CHMOD, cherche pas


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 03-08-2005 à 21:34:50    

Et pour le else, bah en fait faut trouver un autre système, cherche...


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 03-08-2005 à 21:35:46    

Tu pourrais me faire un code valide? donne moi celui qui marche chez toi... même si le else marche pas... je trouverai, mais la je n'obtiens rien a part ceci:
Warning: opendir(http://www.flagelleurs.com/upload/): failed to open dir: not implemented in /var/www/free.fr/5/5/bfvww2/upload/cont.php on line 158
 
Warning: readdir(): supplied argument is not a valid Directory resource in /var/www/free.fr/5/5/bfvww2/upload/cont.php on line 160

Reply

Marsh Posté le 03-08-2005 à 21:36:30    


Bah il va avoir du mal ne connaissant pas PHP.

Reply

Marsh Posté le 03-08-2005 à 21:36:58    

voui...

Reply

Marsh Posté le 03-08-2005 à 21:52:31    

Orchrist a écrit :

Tu pourrais me faire un code valide? donne moi celui qui marche chez toi... même si le else marche pas...


 
Tiens voila le code qui marche chez moi :
 

Code :
  1. <?
  2. $rep = "./";
  3. $dir = opendir($rep);
  4. while ($f = readdir($dir)) {
  5.   if(is_file($rep.$f)) {
  6.      echo "<a href=\"".$rep.$f."\">- ".$f."</a>";
  7.       echo "<BR>";
  8.      }else{
  9.      echo("Rien!" );
  10.         }
  11. } ?>


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 03-08-2005 à 21:53:50    

alors, je suis reparti sur cette base:
 

Code :
  1. <?
  2. $dossier = opendir ("upload/images" );
  3. while ($fichier = readdir ($dossier)) {
  4.     if ($fichier != "." && $fichier != ".." ) {
  5.         echo "<a href=\"".$dossier.$fichier."\">- ".$fichier."</a>";
  6.     }
  7. }
  8. closedir ($dossier);
  9. ?>


 
cela m'affiche un lien... mais regardez le lien:

Code :
  1. http://fantasticworlds.selfip.com/ [...] icense.txt


 
alors qu'il devrait etre:

Code :
  1. http://fantasticworlds.selfip.com/ [...] icense.txt


Message édité par Orchrist le 03-08-2005 à 21:54:11
Reply

Marsh Posté le 03-08-2005 à 21:55:34    

bon, ton code passez chez moi je sais pas ce que j'ai fait... comment virer le else?

Reply

Marsh Posté le 03-08-2005 à 21:56:46    

non maius c'est normal regarde la valeur de ta variable dossier


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 03-08-2005 à 21:57:15    

je sais j'ai oublié un / a la fin... Et pour le else?

Reply

Marsh Posté le 03-08-2005 à 22:01:35    

dossier = opendir ("upload/images" );
 
tu peux pas faire un lien avec ca!
 
dossier = "upload/images/";
Pour le opendir tu le fou ailleur
 
et sinon pour le "rien!" je sais pas met un test avec une vriable ou quelques chose comme ça


Message édité par dwogsi le 03-08-2005 à 22:03:28

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 03-08-2005 à 22:05:37    

du genre pour le "rien!" :
 

Code :
  1. <?
  2. $rep = "./";
  3. $dir = opendir($rep);
  4. $ya_fichier = FALSE;
  5. while ($f = readdir($dir)) {
  6.   if(is_file($rep.$f)) {
  7.      echo "<a href=\"".$rep.$f."\">- ".$f."</a>";
  8.      $ya_fichier = TRUE;
  9.       echo "<BR>";
  10.      }
  11. }
  12. if ( !$ya_fichier ) {
  13.   echo "Rien!";
  14. }
  15. ?>


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 03-08-2005 à 22:09:21    

a la place de ton ./ je peux pas mettre d'url... Warning: opendir(http://www.flagelleurs.com/up/images/): failed to open dir: not implemented in D:\Webdatas\wwwroot\jef\anca\cont.php on line 147
 
Warning: readdir(): supplied argument is not a valid Directory resource in D:\Webdatas\wwwroot\jef\anca\cont.php on line 151
Rien!>  
 
car le répertoire existe

Reply

Marsh Posté le 03-08-2005 à 22:12:04    

attends tu essais bien d'accèder à un répertoire se trouvant sur le même serveur que ton script au moins?


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 03-08-2005 à 22:13:25    

no justement...

Reply

Marsh Posté le 03-08-2005 à 22:13:52    

Euh, justement, j'étais en train de me poser la question.
Je suis pas sûr que la routine avec :
$rep = "http://bfvww2.free.fr/upload/sons/";  
fonctionne.
Ce s'rait la porte ouverte à tous les délires de lamerz ça.

Reply

Marsh Posté le 03-08-2005 à 22:14:31    

???

Reply

Marsh Posté le 03-08-2005 à 22:15:22    

Tu peux utiliser les fonctions FTP de PHP si tu as un acces aux serveur que tu veux lister. Mais tu ne connais pas PHP. Prie pour trouver une bonne ame qui te le fasse entierement.

Reply

Marsh Posté le 03-08-2005 à 22:16:26    

je connais toutes les données de mon accès... mais en fait, je dios faire comme si je me connectais avec un logiciel ftp? Mais comment faire... je prie

Reply

Marsh Posté le 03-08-2005 à 22:19:05    

Oui PHP permet l'acces a des ftp distants http://fr.php.net/manual/fr/ref.ftp.php le but est de creer un script avec ces fonctions qui se connectent au serveur ftp etqui recupere la liste des fichiers que tu souhaites. Voila l'explication grossiere ... bonne chance.

Reply

Marsh Posté le 03-08-2005 à 22:20:11    

alors, en fait, j'ouvrer une session ftp... je fais ma recherche, j'affiche, et je referme la session?

Reply

Marsh Posté le 03-08-2005 à 22:26:33    

Code :
  1. <?php
  2. $ftp_serveur = "ftpperso.free.fr";
  3. $ftp_user_name = "bfvww2";
  4. $ftp_user_pass = "mon pass";
  5. // Mise en place d'une connexion basique
  6. $conn_id = ftp_connect($ftp_server);
  7. // Identification avec un nom d'utilisateur et un mot de passe
  8. $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
  9.      $rep = "http://bfvww2.free.fr/upload/images/"; 
  10.      $dir = opendir($rep); 
  11.    
  12.      $ya_fichier = FALSE;
  13.    
  14.     while ($f = readdir($dir)) { 
  15.        if(is_file($rep.$f)) { 
  16.           echo "<a href=\"".$rep.$f."\">- ".$f."</a>"; 
  17.           $ya_fichier = TRUE;
  18.            echo "<BR>"; 
  19.           }
  20.      }
  21.      if ( !$ya_fichier ) {
  22.        echo "Rien!";
  23.      }
  24.      ?>
  25. // Fermeture du flux FTP
  26. ftp_close($conn_id);
  27. ?>


 
Qui peut me corriger ce qui va pas marcher?  :D


Message édité par Orchrist le 03-08-2005 à 22:29:28
Reply

Marsh Posté le 03-08-2005 à 22:28:48    

Déjà, le ftp Free, c'est ftpperso.free.fr il me semble, si tu essayes de te connecter chez Free en FTP sur la base MySQL, ça va merder quelquepart. :D

Reply

Marsh Posté le 03-08-2005 à 22:29:17    

lol mdr c vrai ^^ j'ai corrigé sinon le reste?


Message édité par Orchrist le 03-08-2005 à 22:29:42
Reply

Marsh Posté le 03-08-2005 à 22:35:03    

http://fr.php.net/manual/fr/function.ftp-rawlist.php entre autre ... ou http://fr.php.net/manual/fr/function.ftp-nlist.php
regarde l'exemple.
Et de grace ... oublie ce que tu faisais avant avec opendir ... ce n'est plus valide, tu passes par un 'client' ftp que tu scriptes, il faut utiliser les fonctions PHP qui te permette d'utiliser la session FTP que tu as ouverte.


Message édité par afbilou le 03-08-2005 à 22:37:42
Reply

Marsh Posté le 03-08-2005 à 22:37:46    

Code :
  1. <?php
  2. $ftp_serveur = "ftpperso.free.fr";
  3. $ftp_user_name = "bfvww2";
  4. $ftp_user_pass = "mon pass";
  5. // Mise en place d'une connexion basique
  6. $conn_id = ftp_connect($ftp_server);
  7. // Identification avec un nom d'utilisateur et un mot de passe
  8. $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
  9. // Récupère la liste des fichiers de /
  10. $buff = ftp_rawlist($conn_id, 'upload/images/'); //je suis sous bfvww2.free.fr/upload/images?
  11. // Fermeture de la connexion
  12. ftp_close($conn_id);
  13. // Affiche le buffer
  14. var_dump($buff);
  15. ?>


Message édité par Orchrist le 03-08-2005 à 22:38:02
Reply

Marsh Posté le 03-08-2005 à 22:39:30    

et pour un buffer cliquable? j'ai du mal a compiler

Code :
  1. var_dump($buff);

et les truc de ce genre:

Code :
  1. echo "<a href=\"".$rep.$f."\">- ".$f."</a>";


Message édité par Orchrist le 03-08-2005 à 22:39:43
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed