PHP, afficher des dossiers, sauf 1!

Résolu/Fermé
redyom Messages postés 19 Date d'inscription jeudi 25 octobre 2007 Statut Membre Dernière intervention 7 janvier 2008 - 29 oct. 2007 à 11:51
redyom Messages postés 19 Date d'inscription jeudi 25 octobre 2007 Statut Membre Dernière intervention 7 janvier 2008 - 7 nov. 2007 à 12:23
Bonjour tout le monde,

Alors voilà, je veux afficher des dossiers et les fichiers qui sont dedans et que lorsque ce sont des fichiers qu'il y ait un lien pour les ouvrir. Pour l'instant ça va, ça fonctionne :)

MAIS... je ne veux pas afficher TOUS mes dossiers, je ne veux pas afficher 'dossier8' et 'dossier9' par exemple, car je me réserve pour d'autres page. J'ai donc essayé en mettant des conditions un peu partout mais il ne veut rien savoir!!!

Voici mon code actuel :

$rep=opendir($num_cont['cont_num']);
while ($file = readdir($rep))
{
if($file != '..' && $file !='.' && $file !='')
{
if(is_dir($file)) //si c'est pas un dossier
{
echo '       <img src="images/arrow.png" /> <h3><a target="_blank" href='.$num_cont['cont_num'].'/'.$file.'>'.$file.'</a></h3><br />';
}
else //si c'est un dossier, on l'affiche sans lien
{
echo '<h3><img src="images/etoile.png" /> '.$file.'</h3>';
// Puis on visite l'interieur du dossier
$rep1=opendir($num_cont['cont_num'].'/'.$file);
while ($file1 = readdir($rep1))
{
if($file1 != '..' && $file1 !='.' && $file1 !='')
{
if(is_dir($file1)) //Si c'est un dossier, on l'affiche, sans lien
{
echo '<h3><img src="../images/etoile.png" width="17" height="16" />'.$file1.'</h3><br>';
}
else //si c'est pas un dossier, on affiche le fichier avec un lien
{
echo '       <img src="images/arrow.png" /> <a target="_blank" href='.$num_cont['cont_num'].'/'.$file.'/'.$file1.'>'.str_replace(".pdf","",str_replace("_"," ",$file1)).'</a><br />';
}
}
}
}
}



J'ai essayé (dans les différentes conditions) de mettre && $file1 != 'dossier8' ou encore de faire un str_replace pour que ça me mette rien quand le dossier s'apelle 'dossier8' mais ça ne marche pas, je pense que la solution devrait se trouver dans un de mes if mais j'y arrive pô.

Merci
A voir également:

8 réponses

Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 921
29 oct. 2007 à 12:04
salut,

n'aurais-tu pas oublié de fermer des accolades ?
quand j'ai voulu indenter ton code, je ne suis pas retombé sur mes pieds… je sais bien que l'on peut en omettre certaines c'est pas le pied pour déboguer !
<?php
	$rep=opendir($num_cont['cont_num']);
	while ($file = readdir($rep))
	{
		if($file != '..' && $file !='.' && $file !='')
		{
			if(is_dir($file)) //si c'est pas un dossier
			{
				echo '       <img src="images/arrow.png" /> <h3><a target="_blank" href='.$num_cont['cont_num'].'/'.$file.'>'.$file.'</a></h3><br />';
			}
			else //si c'est un dossier, on l'affiche sans lien
			{
				echo '<h3><img src="images/etoile.png" /> '.$file.'</h3>';
				// Puis on visite l'interieur du dossier
				$rep1=opendir($num_cont['cont_num'].'/'.$file);
				while ($file1 = readdir($rep1))
				{
				if($file1 != '..' && $file1 !='.' && $file1 !='')
				{
					if(is_dir($file1)) //Si c'est un dossier, on l'affiche, sans lien
					{
						echo '<h3><img src="../images/etoile.png" width="17" height="16" />'.$file1.'</h3><br>';
					}
					else //si c'est pas un dossier, on affiche le fichier avec un lien
					{
						echo '       <img src="images/arrow.png" /> <a target="_blank" href='.$num_cont['cont_num'].'/'.$file.'/'.$file1.'>'.str_replace(".pdf","",str_replace("_"," ",$file1)).'</a><br />';
					}
				}
			}
		}
	} 
?>

et pour poster du code, mets le en forme avec ce bouton.
-;o)
0
gryzzly Messages postés 4608 Date d'inscription lundi 7 novembre 2005 Statut Contributeur Dernière intervention 24 octobre 2020 1 334
29 oct. 2007 à 12:20
Salut,

<pas taper> l'en manque encore une... ;-) </pas taper>
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 921
29 oct. 2007 à 12:40
salut méchant nounours !

<tapez pas trop fort>moi à la première erreur, j'arrête !!!</tapez pas trop fort>
-:oD
0
redyom Messages postés 19 Date d'inscription jeudi 25 octobre 2007 Statut Membre Dernière intervention 7 janvier 2008
29 oct. 2007 à 12:34
<pas taper non plus> Lol, désolé :) </pas taper non plus>


Là il devrait tout y avoir :

if(opendir($num_cont['cont_num']) == NULL)//si aucun dossier de ce nom n'existe
	{ 
		echo '<br /><b>Aucun dossier correspondant &agrave; ce contrat n\'a &eacute;t&eacute; trouve. <br />Celui ci n\'a peut etre pas encore &eacute;t&eacute; mis &agrave; votre disposition.<br /><a href="membres.php?page=choix_contrat">Retour.</a></b>';
	}
	else
	{
		$rep=opendir($num_cont['cont_num']);
		while ($file = readdir($rep))
		{
			if($file != '..' && $file !='.' && $file !='')
			{   
				 if(is_dir($file)) //si c'est pas un dossier
				 { 
					 echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="images/arrow.png" /> <h3><a target="_blank" href='.$num_cont['cont_num'].'/'.$file.'>'.$file.'</a></h3><br />';	 
				 }
				 else //si c'est un dossier, on l'affiche sans lien
				 {
					echo '<h3><img src="images/etoile.png" /> '.$file.'</h3>';
					// Puis on visite l'interieur du dossier
					$rep1=opendir($num_cont['cont_num'].'/'.$file);
					while ($file1 = readdir($rep1))
					{
						if($file1 != '..' && $file1 !='.' && $file1 !='')
						{  
							 if(is_dir($file1))  //Si c'est un dossier, on l'affiche, sans lien
							 { //supprimer le lien
							  echo '<h3><img src="../images/etoile.png" width="17" height="16" />'.$file1.'</h3><br>';
							 }
							else //si c'est pas un dossier, on affiche le fichier avec un lien
							 {
								echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="images/arrow.png" /> <a target="_blank" href='.$num_cont['cont_num'].'/'.$file.'/'.$file1.'>'.str_replace(".pdf","",str_replace("_"," ",$file1)).'</a><br />';
							 }
						 }
					 }
				 }
			 }
		 }
	}
	mysql_close();
0
gryzzly Messages postés 4608 Date d'inscription lundi 7 novembre 2005 Statut Contributeur Dernière intervention 24 octobre 2020 1 334
29 oct. 2007 à 12:49
<pas taper> mysql_close(); inutile... on travaille en php sans mysql ;-) </pas taper>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
redyom Messages postés 19 Date d'inscription jeudi 25 octobre 2007 Statut Membre Dernière intervention 7 janvier 2008
29 oct. 2007 à 14:08
Euh... ok mais ça m'avançe pas sur mon problème :)
Ca change rien si je fais un mysql_close(); normalement :)
0
gryzzly Messages postés 4608 Date d'inscription lundi 7 novembre 2005 Statut Contributeur Dernière intervention 24 octobre 2020 1 334
29 oct. 2007 à 14:20
Nan, c'ets sur, ca change rien, puisque y'a pas d ebase de données en jeu. donc ca n'a rien a faire là ;-)
d'autant que si tu inclues ce script plus tard dans une action en lien avec sgbd, tu va galerer pour déboguer car cette fonction n'a rien a faire la dedans.

C'est comme si je te demandais d'aller acheter des timbres, et que je te donnes un billet de 5euros et une fourchette pour payer... la fourchette est inutile, et pourrait meme devenir dangereuse.

dslé du hors sujet... j'i pas le tps de me pencher sur ta question avant ce soir moi...
0
redyom Messages postés 19 Date d'inscription jeudi 25 octobre 2007 Statut Membre Dernière intervention 7 janvier 2008
29 oct. 2007 à 14:23
OKi :)

Mais si y'a une base de données en jeu :) Je récupère l'id de l'user, il a des contrats associés à son id et bah... y'a que ses contrats qui s'affichent :) Donc y' apas tout le code mais c'est juste sur cette partie que je bloque :)

No probleme si t'as pas le temps, en tout cas merci de t'être penché dessus :)
0
redyom Messages postés 19 Date d'inscription jeudi 25 octobre 2007 Statut Membre Dernière intervention 7 janvier 2008
7 nov. 2007 à 12:23
Ca y est j'ai trouvé une solution, j'ai chopé un petit script bien sympa qui, après quelques modifications, me donne exactement le résultat que je cherchai. Par contre il est différent de ce que je recherchai quand j'ai posté ce message. En fait maintenant je répète une fonction avec à chaque dossier que je veux visiter, bah un paramètre qui est "mon_nom_de_dossier" :) comme ça plus de problème de dossier indésirable!

Vous pourrez le trouver à cette adresse

https://codes-sources.commentcamarche.net/

Salut et merci encore à ceux qui m'ont aidé :)
0