Lire le contenu d'un repertoire

Petit nouveau ! | 2 Messages

23 août 2010, 11:47

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.

ViPHP
xTG
ViPHP | 7331 Messages

23 août 2010, 12:05

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
}

Petit nouveau ! | 2 Messages

23 août 2010, 12:29

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 !

ViPHP
xTG
ViPHP | 7331 Messages

23 août 2010, 12:53

Tu peux enlever cette ligne :
$dossier=opendir($dir);
Elle ne te sert à rien. ^^