Page 1 sur 1

Lire le contenu d'un repertoire

Posté : 23 août 2010, 11:47
par Hibarii
Bonjour,
j'ai un problème concernant la lecture du contenu d'un repertoire.
L'utilisateur envoie son avatar qui est stocké dans un dossier, puis apparait dans le menu.
Le nom de l'avatar est bien stocké dans la bdd.
Le problème, c'est que tous les avatars s'affichent. Quand je change d'utilisateur, c'est le bon nom d'image, pas de problèmes à ce niveau-là.
Mais comment faire pour n'afficher que l'avatar de l'utilisateur ?
Voici mon code:
<?php 
if($_COOKIE["NOM_UTILISATEUR"]) 
{ 
?>
<?php
$img_utilisateur = mysql_query("SELECT Avatar_Utilisateur FROM Comptes_Utilisateurs WHERE Nom_Utilisateur = '".$_COOKIE["NOM_UTILISATEUR"]."' ") ;
$donnees = mysql_fetch_array($img_utilisateur);
?>
<ul>
	<li>Bienvenue <strong><span style="color:green"><?php echo $_COOKIE["NOM_UTILISATEUR"]; ?></span></strong> !</li>

<?php
$dir="img_avatars";
$dossier=opendir($dir);
$fichier=$donnees["Avatar_Utilisateur"];

while($fichier=readdir($dossier))
{
	$berk=array('.', '..');

	
if(!in_array($fichier,$berk))
{
	$lien=$dir.'/'.$fichier;
?>
<img src="
<?php
if(file_exists($lien))
{
	echo $lien; 
?>" alt="avatar" title="<?php echo $donnees["Avatar_Utilisateur"]; ?>" width=100 height=100 />	
<?php
}
}
}
?>
<li><a href="upload_simple_js.php?login=<?php echo $_COOKIE["NOM_UTILISATEUR"]; ?>">Mes options</a></li>
	<li><a href="deconnexion.php">Déconnexion</a></li>
</ul>

	
<?php }
Tout fonctionne, excepté que les avatars de tous les utilisateurs sont affichés, alors qu'l faudrait seulement l'avatar de l'utilisateur connecté.
Merci de votre aide.

Re: Lire le contenu d'un repertoire

Posté : 23 août 2010, 12:05
par xTG
Tu fais une boucle sur tous les fichiers, c'est normal.
Pourquoi boucler sur un readdir() alors que seule la fonction file_exists() t'intéresse ?
Voici une solution en enregistrant le chemin de l'avatar dans la bdd.
<?php
if(file_exists($donnees["Avatar_Utilisateur"]))
{
?>
<img src="
<?php
        echo $donnees["Avatar_Utilisateur"];
?>" alt="avatar" width=100 height=100 /> 
<?php
}

Re: Lire le contenu d'un repertoire

Posté : 23 août 2010, 12:29
par Hibarii
J'ai utilisé ton code d cette manière:
<ul>
	<li>Bienvenue <strong><span style="color:green"><?php echo $_COOKIE["NOM_UTILISATEUR"]; ?></span></strong> !</li>

<?php
$dir="img_avatars";
$dossier=opendir($dir);

$lien=$dir.'/'.$donnees["Avatar_Utilisateur"];
if(file_exists($lien))
{
?>
<img src="<?php echo $lien; ?>" alt="avatar" width=100 height=100 /> 
<?php
}
?>
	<li><a href="upload_simple_js.php?login=<?php echo $_COOKIE["NOM_UTILISATEUR"]; ?>">Mes options</a></li>
	<li><a href="deconnexion.php">Déconnexion</a></li>
</ul>
Et ça fonctionne, merci beaucoup !

Re: Lire le contenu d'un repertoire

Posté : 23 août 2010, 12:53
par xTG
Tu peux enlever cette ligne :
$dossier=opendir($dir);
Elle ne te sert à rien. ^^