Page 1 sur 1

Lister et Afficher le contenu des pages d'un dossier

Posté : 22 mars 2007, 22:16
par sylvaing26
Bonsoir, j'ai quelques bases de PHP ett je me retrouve avec casse tête et j'ai parcouru toute la toile à la recherche de la solution.

Je developpe un site qui contient un annuaire. Mon site est divisé en plusieurs rubrique et chaque rubrique possede un dossier. Je voudrai que lorsque l'on clique sur le lien par exemple annuaire.php?rubrique=jeuxvideos la pege qui s'affichera ensuite me listera le contenu de toutes les pages web qui sont dans mon dossier jeuxvideos.

Merci d'avance et j'espere que mon explication est a peu près claire

Posté : 23 mars 2007, 00:02
par ghalaad
Hmmm ... Si tu veux vraiment le faire seul...
tes pages web "jeux vidéos" sont-elles:
1 - dans des fichiers différents?
2 - pas encore créées et tu en es au webdesign ?
3 - dans une base de données ?

1 : parcours de dossier via opendir(), readdir(), fopen() &co
2 : utilise une base de données !
3 : bon choix ... :) Tu les auras en utilisant une requête de type
"SELECT * FROM article,categorie WHERE article.id_categorie=categorie.id_categorie AND categorie.name_categorie='".$_GET['rubrique']."'"
(attention, cette requête n'est qu'un exemple)


sinon il existe des CMS tout à fait aptes à t'aider :) Notamment SPIP (cf. un site fait sous spip)

Posté : 23 mars 2007, 00:15
par sylvaing26
Eh bien c'est qu'en fait en bases de donnée moi c'est pas ca du tout. En fait ce serait une page ou lorsque je clique sur "jeux video" on tombe sur une page qui affiche le contenu de toutes les pages contenues dans le dossier jeuxvideos. Chaque page etant dans un fichier different car chaque page est une description de site different (il s'agit d'un annuaire).

Voici le code que j'ai tenté d'élaborer à partir de quelques codes trouvés sur la toile mais ca me donne rien du tout :

Code : Tout sélectionner

<?php $dossier = $_GET['dossier']; $en = 'environnement/'; if($dossier == 'en') $dossier = $_GET['dossier']; $ouverture = opendir($dossier); while ($fichiers = readdir($ouverture)){ if (is_file($dossier.$fichiers) && $fichiers != "/") closedir($ouverture); $lien_fonction = str_replace(".html", ".php"); $aff_fonction = str_replace(".html", ""); include("$page'.php'"); ?>

Posté : 23 mars 2007, 17:50
par Expreg
Si tu n'est pas chez Free : glob()

Posté : 23 mars 2007, 23:15
par sylvaing26
C'est bon j'ai enfin reussi à trouver le bon code, cela fera un jour que j'ai cherché sans relache ! J'espere pouvoir aider une personne qui cherchait le même script que moi en le postant.

Code : Tout sélectionner

<? $cat = $_GET['cat']; $hi = 'Histoire'; $en = 'Environnement'; $ar = 'Art'; $fe = 'Fédération'; $li = 'Litterature'; $sc = 'Sciences'; $so = 'Social'; $sp = 'Sports'; if($cat == 'hi'){ $rep = "histoire/"; $dir = opendir($rep); while ($fr = readdir($dir)) { if(is_file($rep.$fr)) { include ("$rep/$fr") ; } } } if($cat == 'en'){ $rep = "environnement/"; $dir = opendir($rep); while ($fr = readdir($dir)) { if(is_file($rep.$fr)) { include ("$rep/$fr") ; } } } if($cat == 'ar'){ $rep = "art/"; $dir = opendir($rep); while ($fr = readdir($dir)) { if(is_file($rep.$fr)) { include ("$rep/$fr") ; } } } if($cat == 'fe'){ $rep = "federation/"; $dir = opendir($rep); while ($fr = readdir($dir)) { if(is_file($rep.$fr)) { include ("$rep/$fr") ; } } } if($cat == 'li'){ $rep = "litterature/"; $dir = opendir($rep); while ($fr = readdir($dir)) { if(is_file($rep.$fr)) { include ("$rep/$fr") ; } } } if($cat == 'sc'){ $rep = "sciences/"; $dir = opendir($rep); while ($fr = readdir($dir)) { if(is_file($rep.$fr)) { include ("$rep/$fr") ; } } } if($cat == 'so'){ $rep = "social/"; $dir = opendir($rep); while ($fr = readdir($dir)) { if(is_file($rep.$fr)) { include ("$rep/$fr") ; } } } if($cat == 'sp'){ $rep = "sports/"; $dir = opendir($rep); while ($fr = readdir($dir)) { if(is_file($rep.$fr)) { include ("$rep/$fr") ; } } } ?>

J'ai donc donné une variable a chaque dossier pour ne pas l'appeler directement à partir du lien pour eviter les piratages puis j'ai posé les condition : chaque variable appelle tel dossier.


En esperant que ca aidera quelqun

Posté : 23 mars 2007, 23:18
par sylvaing26
Juste une dernière question : Comment lui demander de ne faire la liste que des fichiers PHP et HTML s'il vous plait ?

Posté : 24 mars 2007, 00:53
par Truc
Attention lors de la création de post ne pas confondre "Nouveau" et "Répondre"... tu aurais pu supprimé le message de trop (je l'ai fait pour toi).

Pour la question regarde la fonction glob().

Posté : 24 mars 2007, 01:09
par sylvaing26
Désolé :oops: je suis nouveau et j'ai un peu de mal .... ca ne se reproduira plus. Pourriez vous m'en dire plus sur cette fonction ?

Posté : 24 mars 2007, 12:46
par Truc
tu as le lien vers la doc pour plus d'explications. :wink:

Sinon elle liste tous les fichiers d'un dossier suivant le paramètre passé (qui peut être l'une des extensions)