Tom's Guide > Forum > Programmation > PHP; afficher des fichiers textes [resolu]
Mot :    Pseudo :           
 

Bonjour à tous,
Je souhaite faire une page php qui répertorie ou affiche des articles sous forme de fichier texte présent dans le dossier courant.
Voici le code

Code :
  1. <?php
  2. $file=$_GET['dir'];
  3. if (!is_file($file))
  4. {
  5.   if($dh=opendir("." ))
  6.     {
  7.         while($file=readdir($dh))
  8.         {
  9.                         if($file!='article.php' && is_file($file))
  10.             {
  11.                 echo("<a class=m href='article.php?dir=$file'>$file</a><br>" );
  12.             }
  13.                   }
  14.     }
  15. }else{
  16. $ouvre2=fopen($file,"r" );
  17. while (!feof ($ouvre2))
  18.               {
  19. $tampon2 = fgets($ouvre2, 4096);
  20. echo $tampon2;
  21.             }
  22.     }
  23. fclose($ouvre2);
  24. ?>


J'ai un message d'erreur qui est :
Warning: fclose(): supplied argument is not a valid stream resource in /article.php on line 56
C'est la ligne qui correspond a

Code :
  1. fclose($ouvre2);


De plus, si je clique sur un lien qui a pour nom le fichier ciblé, celui ci ne s'affiche pas, la page se refraichie juste.


Message édité par robin_du_web le 03-07-2008 à 21:27:33
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Je me suis inspiré d'un autre code, alors je n'ai peut être pas compris une fonction...


Message édité par robin_du_web le 01-07-2008 à 11:15:21
Répondre à robin_du_web

C'est pourtant pas un code trop compliqué, je ne comprend pas où ça foire...


Message édité par robin_du_web le 01-07-2008 à 11:17:33
Répondre à robin_du_web

J'ai oublié de préciser que si j'enlève le fclose($ouvre2); il n'y a plus d'erreur, mais dans tout les cas, si je clique sur un lien, ici txt1;txt ou txt2.txt qui sont mes deux fichiers textes, il ne se passe rien, la page se rafraichie juste.

Répondre à robin_du_web

Salut,

 

tu ouvres le fichier $file, et tu fermes $ouvre2...


Message édité par OmaR le 01-07-2008 à 11:00:16
------------------------------ Les dessins des seins ou les desseins des saints ?
Répondre à OmaR

C'est ce que je fais nan ?
Apres pas mal de recherche, je crois que l'erreur se trouve dans la ligne:

Code :
  1. $file=$_GET['dir'];

.
En effet, si j'écris :

Code :
  1. echo $_GET['dir'];


Le nom de mon texte s'affiche alors que si j'écris:

Code :
  1. $file=$_GET['dir'];
  2. echo $file:


Il ne s'affiche pas, il y a peut être un problème avec la version de php, dans l'assignement de la variable! Du coup, je n'ai jamais de valeur pour ma variable $file. Il réaffiche donc toujours la liste !

Répondre à robin_du_web

Oups désolé je me suis trompé.
C'est parce que tu fermes ton fichier après la fin de ta condition. $ouvre2 n'existe que si tu entres dans le else, si tu entres dans le if, il ne va pas exister.


Message édité par OmaR le 01-07-2008 à 11:16:36
------------------------------ Les dessins des seins ou les desseins des saints ?
Répondre à OmaR

Si je ferme $file j'ai la meme erreur...
fclose($file);

Répondre à robin_du_web

je sais pas si tu as vu que j'avais édité...

c'est pas $file qu'il faut fermer, c'est ton fclose qu'il faut placer dans le else de ta condition

------------------------------ Les dessins des seins ou les desseins des saints ?
Répondre à OmaR

Bien vu ! Ca regle tout le probleme... Comme d'hab, petite erreur bête et logique... Merci beaucoup !

Répondre à robin_du_web

Comment fait-on pour dire que tout est réglé ?

Répondre à robin_du_web

tu édites le premier message du topic avec le bouton http://img.bestofmedia.com/img/tomshardware/forum/uk/themes_static/images_forum/21/new/bt-edit.gif et tu ajoutes [Résolu] au titre de ton premier message

------------------------------ Les dessins des seins ou les desseins des saints ?
Répondre à OmaR
Tom's Guide > Forum > Programmation > PHP; afficher des fichiers textes [resolu]
Aller à :

Il y a 586 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens