Supprimer une photo
Résolu
MalonTails
Messages postés
86
Date d'inscription
Statut
Membre
Dernière intervention
-
MalonTails Messages postés 86 Date d'inscription Statut Membre Dernière intervention -
MalonTails Messages postés 86 Date d'inscription Statut Membre Dernière intervention -
Bonjour à toutes et à tous , voila j'arrive a afficher correctement mes photos mais quand je veux supprimer un article un a un j'arrive pas a me défaire de la balise img et du coup ça me laisse un petit carré vert. Tout se supprime correctement de ma bdd pourtant. ( voir photo :3 )
Voici mon code :
<?php
if(!empty($_FILES))
{
$file_name=$_FILES['photo']['name'];
$file_type=$_FILES['photo']['type'];
echo 'Nom : '.$file_name.'<br/>';
echo 'type'.$file_type;
}?>
<?php
if( isset($_POST['soumettre']) ) // si formulaire soumis
{
$content_dir = 'uploads/'; // dossier où sera déplacé le fichier
$tmp_file = $_FILES['photo']['tmp_name'];
if( !is_uploaded_file($tmp_file) )
{
exit("Le fichier est introuvable");
}
// on vérifie maintenant l'extension
$type_file = $_FILES['photo']['type'];
if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') && !strstr($type_file, 'png'))
{
exit("Le fichier n'est pas une image");
}
// on copie le fichier dans le dossier de destination
$name_file = $_FILES['photo']['name'];
if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
{
exit("Impossible de copier le fichier dans $content_dir");
}
echo "Le fichier a bien été uploadé";
}
if(isset($_POST['titre'])) $titre=$_POST['titre'];
else $titre="";
if(isset($_POST['contenu'])) $contenu=$_POST['contenu'];
else $contenu="";
if(isset($_FILES['photo']['name'])) $photo=$_FILES['photo']['name'];
else{
$photo="";
}
try
{
$bdd = new PDO('mysql:host=localhost; dbname=valflexibles; charset=utf8', 'root', '');
}
catch (exception $e)
{
die ('Erreur'.$e->getMessage()) ;
}
if(isset($_GET['supprime']) AND !empty($_GET['supprime'])) {
$supprime=(int) $_GET['supprime'];
$req=$bdd->prepare('DELETE from article where id = ?');
$req->execute(array($supprime));
}
$billets = $bdd->query('select * from article
order by id desc');
$req=$bdd->prepare('insert into article set titre=? , contenu=? , photo=? ');
$req->execute([$titre,$contenu,$photo]);
?>
<?php
$billets = $bdd->query('select * from article
order by id desc');
foreach ($billets as $billet): ?>
<article>
<header>
<font color=grey><?= $billet['titre'] ?></font>
</header>
<a href="upload.php?supprime=<?=$billet['id']?>"><button class="negative ui button">Supprimer</button></a>
<p> <p><h4><?= $billet['contenu'] ?></h4></p></p>
<p> <img src="uploads/<?php echo $billet['photo']; ?>"</p>
</br>
<hr/>
</article>
<hr />
<?php endforeach; ?>

J'ai tenté de faire
if (file_exists($name_file)) {
?> <img src="uploads/<?php echo $billet['photo']; ?>"</p> <?php
} else {
}
Mais ça ne marche pas , ou bien je le place pas au bon endroit dans mon code... Merci a tous :p
Voici mon code :
<?php
if(!empty($_FILES))
{
$file_name=$_FILES['photo']['name'];
$file_type=$_FILES['photo']['type'];
echo 'Nom : '.$file_name.'<br/>';
echo 'type'.$file_type;
}?>
<?php
if( isset($_POST['soumettre']) ) // si formulaire soumis
{
$content_dir = 'uploads/'; // dossier où sera déplacé le fichier
$tmp_file = $_FILES['photo']['tmp_name'];
if( !is_uploaded_file($tmp_file) )
{
exit("Le fichier est introuvable");
}
// on vérifie maintenant l'extension
$type_file = $_FILES['photo']['type'];
if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') && !strstr($type_file, 'png'))
{
exit("Le fichier n'est pas une image");
}
// on copie le fichier dans le dossier de destination
$name_file = $_FILES['photo']['name'];
if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
{
exit("Impossible de copier le fichier dans $content_dir");
}
echo "Le fichier a bien été uploadé";
}
if(isset($_POST['titre'])) $titre=$_POST['titre'];
else $titre="";
if(isset($_POST['contenu'])) $contenu=$_POST['contenu'];
else $contenu="";
if(isset($_FILES['photo']['name'])) $photo=$_FILES['photo']['name'];
else{
$photo="";
}
try
{
$bdd = new PDO('mysql:host=localhost; dbname=valflexibles; charset=utf8', 'root', '');
}
catch (exception $e)
{
die ('Erreur'.$e->getMessage()) ;
}
if(isset($_GET['supprime']) AND !empty($_GET['supprime'])) {
$supprime=(int) $_GET['supprime'];
$req=$bdd->prepare('DELETE from article where id = ?');
$req->execute(array($supprime));
}
$billets = $bdd->query('select * from article
order by id desc');
$req=$bdd->prepare('insert into article set titre=? , contenu=? , photo=? ');
$req->execute([$titre,$contenu,$photo]);
?>
<?php
$billets = $bdd->query('select * from article
order by id desc');
foreach ($billets as $billet): ?>
<article>
<header>
<font color=grey><?= $billet['titre'] ?></font>
</header>
<a href="upload.php?supprime=<?=$billet['id']?>"><button class="negative ui button">Supprimer</button></a>
<p> <p><h4><?= $billet['contenu'] ?></h4></p></p>
<p> <img src="uploads/<?php echo $billet['photo']; ?>"</p>
</br>
<hr/>
</article>
<hr />
<?php endforeach; ?>

J'ai tenté de faire
if (file_exists($name_file)) {
?> <img src="uploads/<?php echo $billet['photo']; ?>"</p> <?php
} else {
}
Mais ça ne marche pas , ou bien je le place pas au bon endroit dans mon code... Merci a tous :p
A voir également:
- Supprimer une photo
- Supprimer rond bleu whatsapp - Guide
- Supprimer une page word - Guide
- Google photo - Télécharger - Albums photo
- Comment supprimer une application préinstallée sur android - Guide
- Supprimer pub youtube - Accueil - Streaming
8 réponses
Bonjour MalonTails,
C'est plutôt :
C'est plutôt :
<?php
if (file_exists($name_file)) {
echo '<img src="uploads/' . $billet['photo'] . '">';
}
?>
MalonTails
Messages postés
86
Date d'inscription
Statut
Membre
Dernière intervention
merci ;) , je le met environ ou dans mon code , sans vouloir trop en demander :3
bonjour ! merci de me répondre ! je dois le mettre a environ quel niveau de mon code ? car souvent j'ai l'erreur comme quoi ma variable name_file n'est pas déclaré alors que si :/
Vous remplacez :
Par :
<p> <img src="uploads/<?php echo $billet['photo']; ?>"</p>
Par :
<p>
<?php
if (file_exists($name_file)) {
echo '<img src="uploads/' . $billet['photo'] . '">';
}
?>
</p>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Merci de ne pas mettre des screen de tes codes ... mais de le coller directement sur le forum en utilisant les balises de codes prévues à cet effet.
Cela nous permettra de mieux lire le code et d'en faire des copier/coller si besoin.
Explications disponibles ici :ICI
.
Merci de ne pas mettre des screen de tes codes ... mais de le coller directement sur le forum en utilisant les balises de codes prévues à cet effet.
Cela nous permettra de mieux lire le code et d'en faire des copier/coller si besoin.
Explications disponibles ici :ICI
.
$name_file = 'uploads/' . $billet['photo'];
if (file_exists($name_file)) {
echo '<img src="' . $name_file . '">';
}
je me répete peut etre beaucoup mais merci vraiment pour l'aide , j'ai du coup modifier la fonction par celle ci
<?php
$name_file = 'uploads/' . $billet['photo'];
if (file_exists($name_file) && isset($_FILES['photo']['name'])) {
echo '<img src="' . $name_file . '">';
}
?>
Du coup ça marche ! le vilain petit carré vert qui me dérangé a enfin foutu le camp ! XD
Mais la base de donnée reste comme ceci
https://puu.sh/vwZoW/ee106a69e3.png
ca supprime les élément de la liste mais pas la ligne elle meme puisque l'id est toujours présent. Du coup les boutons restent aussi
https://puu.sh/vwZqQ/86f832ec42.png
<?php
$name_file = 'uploads/' . $billet['photo'];
if (file_exists($name_file) && isset($_FILES['photo']['name'])) {
echo '<img src="' . $name_file . '">';
}
?>
Du coup ça marche ! le vilain petit carré vert qui me dérangé a enfin foutu le camp ! XD
Mais la base de donnée reste comme ceci
https://puu.sh/vwZoW/ee106a69e3.png
ca supprime les élément de la liste mais pas la ligne elle meme puisque l'id est toujours présent. Du coup les boutons restent aussi
https://puu.sh/vwZqQ/86f832ec42.png
Ceci est aussi bizarre :
En PHP un tableau c'est plutôt :
$req=$bdd->prepare('insert into article set titre=? , contenu=? , photo=? ');
$req->execute([$titre,$contenu,$photo]);
En PHP un tableau c'est plutôt :
array($titre,$contenu,$photo)
oui , même sur mes autres pages j'ai aucun probleme de suppression , par exemple sur une autre page j'utilise :
if(isset($_GET['supprime']) AND !empty($_GET['supprime'])) {
$supprime=(int) $_GET['supprime'];
$req=$bdd->prepare('DELETE from contact where id = ?');
$req->execute(array($supprime));
}
ensuite
</br> <a href="avisvu.php?supprime=<?=$billet['id']?>"><button class="negative ui button">Supprimer</button></a>
et ça marche parfaitement :/
if(isset($_GET['supprime']) AND !empty($_GET['supprime'])) {
$supprime=(int) $_GET['supprime'];
$req=$bdd->prepare('DELETE from contact where id = ?');
$req->execute(array($supprime));
}
ensuite
</br> <a href="avisvu.php?supprime=<?=$billet['id']?>"><button class="negative ui button">Supprimer</button></a>
et ça marche parfaitement :/
On va faire un peu de ménage et de corrections dans ton code.
Déjà .. tu places le code de connexion à la bdd dans un fichier à part que tu n'auras qu'à inclure dans les pages de ton site où tu en auras besoin.
Au passage ... j'active la gestion des erreurs PDO en cas de soucis avec les requêtes. (je t'invite à lire ceci : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs )
Ensuite, le reste de ton code.
Là encore.. petite amélioration .. pour récupérer PROPREMENT les variables AVANT de les utiliser
Lire ceci : https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index
+ ajout des TRY/CATCH autour des requêtes pour lever les erreurs en cas de soucis.
.
Cordialement,
Jordane
Déjà .. tu places le code de connexion à la bdd dans un fichier à part que tu n'auras qu'à inclure dans les pages de ton site où tu en auras besoin.
Au passage ... j'active la gestion des erreurs PDO en cas de soucis avec les requêtes. (je t'invite à lire ceci : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs )
<?php //fichier de connexion à la bdd : cnxBdd.php try{ $bdd =new PDO('mysql:host=localhost; dbname=valflexibles; charset=utf8', 'root', ''); // Activation des erreurs PDO $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); } ?>
Ensuite, le reste de ton code.
Là encore.. petite amélioration .. pour récupérer PROPREMENT les variables AVANT de les utiliser
Lire ceci : https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index
+ ajout des TRY/CATCH autour des requêtes pour lever les erreurs en cas de soucis.
<?php //---------------------------------------------------------------------------// //affichage des erreurs PHP //---------------------------------------------------------------------------// error_reporting(E_ALL); ini_set('display-errors','on'); //---------------------------------------------------------------------------// //connexion à la bdd //---------------------------------------------------------------------------// require_once "cnxBdd.php"; //---------------------------------------------------------------------------// //récupération propre des variables //---------------------------------------------------------------------------// $f_photo = !empty($_FILES['photo']) ? $_FILES['photo'] : NULL; $tmp_file = $f_photo ? $f_photo['tmp_name'] :NULL; $name_file = $f_photo ? $f_photo['name'] :NULL; $type_file = $f_photo ? $f_photo['type'] :NULL; $titre = !empty($_POST['titre']) ? $_POST['titre'] :''; $contenu = !empty($_POST['contenu']) ? $_POST['contenu'] :''; $supprime = !empty($_GET['supprime']) ? (int)$_GET['supprime'] : NULL; //autres variables / Constantes $content_dir = 'uploads/'; // dossier où sera déplacé le fichier //---------------------------------------------------------------------------// // si formulaire soumis //---------------------------------------------------------------------------// if( isset($_POST['soumettre'])) { if( !is_uploaded_file($tmp_file) ){ exit("Le fichier est introuvable"); } //verification type de fichier if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') && !strstr($type_file, 'png')){ exit("Le fichier n'est pas une image"); } // on copie le fichier dans le dossier de destination if( !move_uploaded_file($tmp_file, $content_dir . $name_file) ){ exit("Impossible de copier le fichier dans $content_dir"); } echo "Le fichier a bien été uploadé"; // Insertion des données dans la BDD $sql = "INSERT INTO article (titre,contenu ,photo') VALUES ( ? , ? , ?) "; $datas =array($titre,$contenu,$photo); try{ $req = $bdd->prepare($sql); $req->execute($datas); $new_id = $bdd->lastInsertId(); }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); } } //---------------------------------------------------------------------------// //Suppression //---------------------------------------------------------------------------// if($supprime){ $sql = ' DELETE FROM article WHERE id = ? '; $datas = array($supprime); try{ $req=$bdd->prepare($sql); $req->execute($datas); }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); } } //---------------------------------------------------------------------------// // Affichage des billets //---------------------------------------------------------------------------// $billets = $bdd->query('SELECT * FROM article ORDER BY id DESC'); foreach ($billets as $billet){ echo "<article> <header> <font color='grey'>".$billet['titre']."</font> </header> <a href='upload.php?supprime=".$billet[' rel="nofollow noopener noreferrer" target="_blank" id']."'> <button class='negative ui button'>Supprimer</button> </a> <p><p><h4>".$billet['contenu']."</h4></p></p>"; if(!empty($billet['photo'])){ echo "<p> <img src='uploads/". $billet['photo'] ."' alt='".$billet['photo']."'</p>"; } echo " </br> <hr/> </article> <hr />"; } ?>
.
Cordialement,
Jordane
J'ai réussie à regler mon problème , merci beaucoup Felice pour le temps que tu as passé à m'aider c'est grace à toi.
Merci Jordanne pour ta précieuse aide aussi pour va me permettre d'ameliorer nettement et grandement mon code assez .. mal organisé si je puis dire xD
Je l'ai lu avec attention et c'est clair que cest nettement différent , des demain je modifie le tout ( hé oui il se fait tard :3 ).
Merci aussi pour les liens ça va bien m'aider!
Ca fais vraiment plaisir d'avoir des personnes a notre écoute merci beaucoup !
Merci Jordanne pour ta précieuse aide aussi pour va me permettre d'ameliorer nettement et grandement mon code assez .. mal organisé si je puis dire xD
Je l'ai lu avec attention et c'est clair que cest nettement différent , des demain je modifie le tout ( hé oui il se fait tard :3 ).
Merci aussi pour les liens ça va bien m'aider!
Ca fais vraiment plaisir d'avoir des personnes a notre écoute merci beaucoup !