PHP, afficher des dossiers, sauf 1!

Résolu
redyom Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   -  
redyom Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Contributeur Dernière intervention   922
 
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   Statut Contributeur Dernière intervention   1 335
 
Salut,

<pas taper> l'en manque encore une... ;-) </pas taper>
0
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
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   Statut Membre Dernière intervention  
 
<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   Statut Contributeur Dernière intervention   1 335
 
<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   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   1 335
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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