mod_autoindex d'apache et PHP

mod_autoindex d'apache et PHP - PHP - Programmation

Marsh Posté le 24-08-2008 à 18:00:47    

Bonjour
 
Tout d'abord j'annonce  que je bidouille du apache et que je suis une vrai chêvre en HTML/CSS/PHP..  
 
j'ai besoin de faire un site perso qui servira plus de "dépot" bordélique que d'un vrai site attrayant et interactif. J'ai donc choisi d'utiliser simplement l'index of / d'apache et de le personnaliser avec le mod_autoindex.
POur ça aucun problème, j'ai pu me personnaliser mon index of/ sur mesure avec du CSS et de jolis icones et tout et tout. J'ai aussi permis l'exécution de HEADER.php alors que par defaut apache ne prend que les HEADER.html.
 
Ma question :
 
Voici une partie de la source de ma page d'acceuil (et des autres pages) généré par apache et le HEADER.php
 

Code :
  1. <pre>
  2.      <img src="/icons/blank.gif" alt="Icon " width="32" height="32"><a href="?C=N;O=D">Name</a><a href="?C=S;O=A">Size</a><a href="?C=D;O=A">Description</a><hr>
  3.      <a href="docsCours/"><img src="/icons/theme1/folder-32x32.png" alt="[DIR]" width="32" height="32"></a><a href="docsCours/">docsCours/</a>                - 
  4.      <a href="liens/"><img src="/icons/theme1/folder-32x32.png" alt="[DIR]" width="32" height="32"></a><a href="liens/">liens/</a>                    - 
  5.      <a href="memos/"><img src="/icons/theme1/folder-32x32.png" alt="[DIR]" width="32" height="32"></a><a href="memos/">memos/</a>                    - 
  6.      <a href="pictures/"><img src="/icons/theme1/folder-32x32.png" alt="[DIR]" width="32" height="32"></a> <a href="pictures/">pictures/</a>                 - 
  7.      <a href="tools/"><img src="/icons/theme1/folder-32x32.png" alt="[DIR]" width="32" height="32"></a> <a href="tools/">tools/</a>                    - 
  8.      <a href="tutos/"><img src="/icons/theme1/folder-32x32.png" alt="[DIR]" width="32" height="32"></a> <a href="tutos/">tutos/</a>                    - 
  9.      <a href="fichier1.txt"><img src="/icons/theme1/files-text-32x32.png" alt="[UNK]" width="32" height="32"></a> <a href="fichier1.txt">fichier1.txt</a>              0 
  10.      <a href="fichier2.txt"><img src="/icons/theme1/files-text-32x32.png" alt="[UNK]" width="32" height="32"></a> <a href="fichier2.txt">fichier2.txt</a>              0 
  11. <hr></pre>


C'est donc la partie listing des fichiers et repertoires de l'index of. Soit ceci :
http://img126.imageshack.us/img126/593/memotuxum2.png
 
 
Ce que je voudrais, c'est de remplacer mes liens de fichier .txt (en rouget) par ça :

Code :
  1. <a href="?txt=fichier1.txt"><img src="/icons/theme1/files-text-32x32.png" alt="[UNK]" width="32" height="32"></a> <a href="?txt=fichier1.txt">fichier1.txt</a>              0 
  2.      <a href="?txt=fichier2.txt"><img src="/icons/theme1/files-text-32x32.png" alt="[UNK]" width="32" height="32"></a> <a href="?txt=fichier2.txt">fichier2.txt</a>              0


Vous l'aurez compris, je veux que tout les fichiers txt présents dans les pages soient placés automatiquement dans la variable 'txt' quand on clique dessus. Le but final étant de récupérer le contenu du fichier sur lequel on vient de cliquer afin d'afficher son contenu dans une page html stylée en CSS...
 
Depuis ce matin je cherche mais je sais pas trop ou chercher en fait... D'accord je pompe vraiment pas grand chose en php, et vous allez me dire "tu vas aller bucher oui feignasse !!" mais avant, est ce bien dans cette direction que je dois chercher ?... Ou faut il que je configure quelques chose dans les modules apache ? Une directive magique ? ...  [:spo_o]


Message édité par SpO_o le 24-08-2008 à 20:56:24
Reply

Marsh Posté le 24-08-2008 à 18:00:47   

Reply

Marsh Posté le 25-08-2008 à 09:31:48    

au niveau d'apache de memoire je pense pas que tu puisse ajouter qqchose.
 
Sinon je pense que la direction que tu prend convient, et comme tu le pense va falloir bucher :-)
 
Créer ce genre de lien ca devrait etre facile apres :  

<a href="ouvrir_fic.php?fic=fichier1.txt&type=txt"><img src="/icons/theme1/files-text-32x32.png" alt="[UNK]" width="32" height="32"></a> <a href="?txt=fichier1.txt">fichier1.txt</a>    


 
et dans ouvrir_fic.php tu fait un truc de ce genre :  
$fic=file_get_contents($_GET['fic']); //recupere le contenu du fichier dans une variable
//ensuite tu travaille la variable comme tu en a envie
// header( .... ); //il te faudrai renvoyer manuellement les header qui vont bien
file_put_contents($fic); //ca renvoie le contenu de la variable au client
 
 
pourquoi pas ...
 
Mais transformer un fichier texte pour le rendre en html afin de pouvoir y appliquer un CSS tu va t'amuser qd meme ...  
bonne chance.  :D  


---------------
Du tofu en Alsace : www.tofuhong.com
Reply

Marsh Posté le 25-08-2008 à 21:13:24    

merci pour ta réponse
 
je voulais eviter de passer par du php trop poussé pour faire ce genre de chose mais je crois que je vais pas avoir le choix..  [:soulfly]  
 
En fait le listing des fichiers et dossiers que j'ai cité plus haut est généré automatiquement par apache, et donc ce code n'est pas du tout présent dans mon HEADER.php.
Donc je vois pas comment je pourrais modifier le lien comme tu dis  :??:  
 
Parce que si c'est pour me taper a la main chaque élément de l'arborescence alors autant que je passe par la methode classique : un site composé d'une multitude de fichier html/php qui s'appelle les uns les autre. Mais c'est pas vraiment le but.
 
Pour donner une idée du résultat que je veux obtenir, voici le site dont je me suis le plus inspiré : ICI
Si on regarde la source de la page d'acceuil, on voit bien que l'auto index d'apache génère du code html avec les href des .txt et .jpg en quelque chose comme :

Code :
  1. ?var=fichier.txt


C'est bien apache qui fait ça non ? Ou bien un code php dans le HEADER.php peut être.
A condition que ce site utilise bien le mod_autoindex paske sinon j'ai vraiment tout faux... [:nikaia]

Reply

Marsh Posté le 26-08-2008 à 09:46:06    

pour modifier les url à la volé par apache renseigne toi sur le mod_rewrite d'apache, c'est assez complexe mais tu arrivera à faire ce que tu veux avec.
Prérequis : il faut que tu connaisse les expressions régulière.
 
Tu peux aussi ecrire au webmaster de neovita ;-)
 
Bonne chance


---------------
Du tofu en Alsace : www.tofuhong.com
Reply

Marsh Posté le 26-08-2008 à 12:14:24    

moi j'aimerais bien savoir comment on fait un si beau listing apache !:

Reply

Marsh Posté le 28-08-2008 à 21:32:37    

Ce mod_rewrite semble plutôt interessant... j'imagine qu'en utilisant les redirections conditionnelles on peut facilement faire un truc du genre :
 
Si le lien demandé se termine par *.txt
Alors je charge la page txt_in_html.php
Puis dans mon txt_in_html.php je récupère le nom et le chemin du fichier texte grace au lien précédemment cliqué..  
 
Je pense que je vais pouvoir m'en sortir avec ça, mais va falloir que je trouve le temps pour m'y coller maintenant....
 

Citation :

moi j'aimerais bien savoir comment on fait un si beau listing apache !


 
les mots clés googlesque sont :
 
customize apache index mod_autoindex .htaccess
 
quelques liens en vrac :
 
http://www.nemako.net/dc2/?post/20 [...] c-htaccess
http://httpd.apache.org/docs/2.0/m [...] index.html
http://www.blup.fr/2004/07/05/tuni [...] es-plumes/
 
Après tu fais ce que tu veux avec ton HEADER.html/php et README.html/php. T'y colle les feuilles CSS qui te chante, du javascript, php, etc..

Reply

Marsh Posté le 16-08-2011 à 23:49:16    

Salut, et desolé de reposter sur ce sujet inactif depuis bien longtemps...
 
Je bidouille mon fichier /etc/apache2/mod-available/autoindex.conf depuis tout a l'heure et je tombe sur ce post.
 
Si SpO_o a reussi a faire passer un header.php, il y a surement moyen d'executer du javascript dans un footer
code:autoindex.conf

Citation :

ReadmeName /ftpconf/footer.php


 
code:footer.php

Citation :

<script type='javascript'>
link_files=document.getElementsByTagName("a" );
for (i=0; link_files[i]; i++)
   {link_files[i].setAttribute('href',"NOUVELLE VALEUR DE TOUT LES LIENS" );}
 </script>


PS: pour inclure un fichier php dans la page généré par autoindex:
code:autoindex.conf

Citation :

AddType text/html .php

Reply

Marsh Posté le 18-08-2011 à 13:29:18    

je pense que faire un fichier php bidon qui liste le contenu d'un répertoire et qui met une icone différente en fonction du type de fichier est beaucoup plus simple que ces tricks tordus. Des scripts comme ça yen a plein le net :P


---------------
Directeur Technique (CTO)
Reply

Sujets relatifs:

Leave a Replay

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