Le site des utilisateurs francophones de FluxBB.
Vous n'êtes pas identifié(e).
Bonsoir,
Après une recherche infructueuse avec le mot clé "avatar" (certaines discussions et plus particulièrement des anciennes MODs 1.2.x paraissaient convenir, mais leur accès au téléchargement est à ce jour rompu
), je me demandai s'il existait déjà une discussion traitant d'un moyen de récupérer les noms de fichiers correspondant aux Avatars se trouvant sous le répertoire des avatars (o_avatars_dir) ainsi que tous les id utilisateurs de la table des utilisateurs, puis de comparer et supprimer tous les avatars ne faisant référence à aucun utilisateur ?
En effet, il semblerait que certains de mes utilisateurs aient été supprimés manuellement de la table "users" (sans doute lors d'une attaque massive de bots ou alors je ne sais comment l'expliquer autrement), et que leur avatar respectif soit du coup toujours présent sur le serveur.
Mon but est donc de supprimer les images (avatars) inutiles et encore présentes sur le serveur FTP.
Merci d'avance pour votre aide et bon weekend tout le monde. 
Hors ligne
Bonsoir,
Je reviens simplement signaler que quelques heures plus tard après avoir posé ma question (et après avoir fouillé dans la documentation de PHP), j'ai réussi à mettre en place un morceau de code qui fonctionne et qui fait ce dont j'avais besoin (cf. ci-dessous).
Il parait évident que ce code peut-être amélioré et sans doute réduit à quelques lignes étant donné que je ne connais rien au php (c'est d'ailleurs pour cette même raison que je le poste ici au cas où l'un d'entre vous souhaiterait l'optimiser), mais bon... au moins cela marche, ce qui me suffit amplement pour passer ce sujet en "RÉSOLU". 
Bonne fin de soirée et bonne nuit tout le monde. 
// Start deleteOldAvatar : Suppression des avatars inutiles (sur le serveur FTP)
// Récupération des noms de fichiers correspondant aux Avatars se trouvant sous le répertoire $pun_config['o_avatars_dir']
function getImagesFiles($dir)
{
$names_images = array();
if (is_dir($dir))
{
if ($dh = opendir($dir))
{
while (($file = readdir($dh)) !== false)
{
if (filetype("$dir/$file") != 'dir' && strpos($file,'.html') === false)
{
$names_images[strstr($file,'.',true)] = $file;
}
}
closedir($dh);
}
}
return $names_images;
}
// Récupération de tous les id utilisateurs de la table des "Utilisateurs"
function getUserID()
{
global $db;
$array_ids = array();
$sql_query = "SELECT id FROM `".$db->prefix."users`;";
if ($result = $db->query($sql_query))
{
while ($user = $result->fetch_assoc())
{
$array_ids[] = $user["id"];
}
$result->close();
}
return $array_ids;
}
// Comparaison avec les id utilisateurs, puis suppression de tous les Avatars ne faisant référence à aucun utilisateur
function deleteOldAvatar($dir)
{
$array_user_images = getImagesFiles($dir);
if(count($array_user_images) > 0)
{
$array_users_db = getUserID();
foreach ($array_user_images as $user_image => $file)
{
if(!in_array($user_image,$array_users_db))
{
// echo "Suppression de '.$user_image.' (EN SACHANT QUE file = '.$dir.'/'.$file.').<br />"; // Voir la liste des images supprimées du serveur FTP.
@unlink($dir.'/'.$file);
}
else
{
// echo "Conservation de '.$user_image.' (EN SACHANT QUE file = '.$dir.'/'.$file.').<br />"; // Voir la liste des images conservées sur le serveur FTP.
}
}
}
}
// Exécution de la fonction de suppression des Avatars inutiles encore hébergés sur le serveur FTP
deleteOldAvatar(PUN_ROOT.$pun_config['o_avatars_dir']);
// End deleteOldAvatarHors ligne