Bonjour,
Voila je voudrais optimiser ce code, le code fonctionne sans soucis mais j'utilise unlink deux fois car les user pourron prendre des png ou jpg comme avatar ou gravatar si empty !!
//suppression avatar
if(isset($_POST['delete_avatar'])){
checkCsrf();//on vérifie tout de meme les failles csrf
$profil_id = intval($_SESSION['auth']->id);
$image_name = md5($profil_id);
$db->prepare("UPDATE users SET avatar = ? WHERE id = ?")->execute(['', $profil_id]);
unlink('img/avatars/' . $image_name . '.png');
unlink('img/avatars/' . $image_name . '.jpg');
setFlash('<strong>Super !</strong> L\'avatar a bien été supprimer <strong>Bien jouer :)</strong>','Success !');
redirect('account#flash');
}
Salut, déjà il faut que tu vérifies si le fichier existe :
<?php
if (file_exists('img/avatars/' . $image_name . '.png')){
unlink('img/avatars/' . $image_name . '.png');
} else{
unlink('img/avatars/' . $image_name . '.jpg');
}
?>
Merci de ta réponse, alors oui je savais pour file_existes je voulais juste l'info pour évité de faire deux unlink mon site n'est pas encore en production.
j'ai fait ceci, et finalement seul les png seront autoriser.
if(isset($_POST['delete_avatar'])){
checkCsrf();//on vérifie tout de meme les failles csrf
$profil_id = intval($_SESSION['auth']->id);
$image_name = md5($profil_id) . '.png';
if(file_exists('inc/img/avatars/' . $image_name)){
unlink('inc/img/avatars/' . $image_name);
$db->prepare("UPDATE users SET avatar = ? WHERE id = ?")->execute(['', $profil_id]);
setFlash('<strong>Super !</strong> L\'avatar a bien été supprimer <strong>Bien jouer :)</strong>','Success !');
redirect('account#flash');
} else {
$error = errors('le fichier n\'existe pas');
}
}
Je répond dans le cas on chercherai la même chose que mois !!!