Problème pour telecharger l'image
Résolu/Fermé
delavega470
Messages postés
298
Date d'inscription
dimanche 9 février 2014
Statut
Membre
Dernière intervention
24 mars 2020
-
5 juil. 2017 à 10:11
jordane45 Messages postés 38396 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 27 janvier 2025 - 5 juil. 2017 à 18:18
jordane45 Messages postés 38396 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 27 janvier 2025 - 5 juil. 2017 à 18:18
A voir également:
- Problème pour telecharger l'image
- Telecharger whatsapp pour pc - Télécharger - Messagerie
- Comment télécharger une vidéo youtube - Guide
- Telecharger zuma pour pc - Télécharger - Jeux vidéo
- Telecharger google meet pour pc - Télécharger - Messagerie
- Telecharger ccleaner gratuit - Télécharger - Nettoyage
8 réponses
jordane45
Messages postés
38396
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 janvier 2025
4 732
5 juil. 2017 à 10:16
5 juil. 2017 à 10:16
Bonjour,
1 - commence par ça :https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
2 - dis nous ce que tes echo t'affichent
1 - commence par ça :https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
2 - dis nous ce que tes echo t'affichent
delavega470
Messages postés
298
Date d'inscription
dimanche 9 février 2014
Statut
Membre
Dernière intervention
24 mars 2020
48
5 juil. 2017 à 12:05
5 juil. 2017 à 12:05
le repertoire existe !
delavega470
Messages postés
298
Date d'inscription
dimanche 9 février 2014
Statut
Membre
Dernière intervention
24 mars 2020
48
5 juil. 2017 à 12:09
5 juil. 2017 à 12:09
j'ai fais le test le fichier est uploader
delavega470
Messages postés
298
Date d'inscription
dimanche 9 février 2014
Statut
Membre
Dernière intervention
24 mars 2020
48
5 juil. 2017 à 13:18
5 juil. 2017 à 13:18
une idée?
jordane45
Messages postés
38396
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 janvier 2025
4 732
5 juil. 2017 à 13:21
5 juil. 2017 à 13:21
une idée ? .... Oui.... mais je vais commencer par aller manger ....
Ensuite.. je verrai pour "améliorer" ton code et voir ce qui pourrait bloquer.
En attendant .. tu peux déjà répondre à ça :
- Au passage... tu es en local sur ton ordi ou sur un serveur ?
- Tu utilises quoi comme serveur ?
- As tu vérifié les droits sur le répertoire image ?
- Où se trouve ce répertoire dans ton calorescence ?
- Où se situe ton script par rapport à ce répertoire ?
Ensuite.. je verrai pour "améliorer" ton code et voir ce qui pourrait bloquer.
En attendant .. tu peux déjà répondre à ça :
- Au passage... tu es en local sur ton ordi ou sur un serveur ?
- Tu utilises quoi comme serveur ?
- As tu vérifié les droits sur le répertoire image ?
- Où se trouve ce répertoire dans ton calorescence ?
- Où se situe ton script par rapport à ce répertoire ?
delavega470
Messages postés
298
Date d'inscription
dimanche 9 février 2014
Statut
Membre
Dernière intervention
24 mars 2020
48
5 juil. 2017 à 13:58
5 juil. 2017 à 13:58
je suis en local sur mon ordi, j'utilise wampserver mon repertoir 'image' est juste au même endroit que mon script , juste a coté de send.php
jordane45
Messages postés
38396
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 janvier 2025
4 732
5 juil. 2017 à 14:10
5 juil. 2017 à 14:10
Et ton send.php il est où ? dans un sous répertoire ou à la racine de ton site ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jordane45
Messages postés
38396
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 janvier 2025
4 732
5 juil. 2017 à 15:17
5 juil. 2017 à 15:17
Essayes ça :
<style type="text/css"> .error{ color: red; } .success{ color:green; } </style> <?php //-------------------------------------------------------// // Fonction d'insertion en BDD //-------------------------------------------------------// function insertFileIntoBdd($file_name,$nom_marq,$statu){ global $bd; //verification du fichier existant $sql = 'SELECT id from marque where img_marq="'.$file_name.'" '; $reponse = $bd->query($sql); $resultat = $reponse->fetch(); if ($resultat) { $result['err'] = "<font color='red'>Cette image existe déjà...</font>"; } else { $sql = 'INSERT INTO marque(nom_marq,im_marq,statu_img) VALUES (?,?,?)'; $datas = array($nom_marq,$file_name,$statu); try{ $req = $bd->prepare($sql); $req->execute($datas); $result = true; }catch(Exception $e){ $result['err'] = " Erreur ! " .$e->getMessage(); } } return $result; } //-------------------------------------------------------// // connexion à la bdd // ici tu remets le code de connexion à la bdd //-------------------------------------------------------// //-------------------------------------------------------// // traitement du formulaire //-------------------------------------------------------// if (isset($_POST['ok'])) { //récupération PROPRE des variables AVANT de les utiliser $files = !empty($_FILES) ? $_FILES : NULL; $F = !empty($_FILES["image"]) ? $_FILES["image"] : NULL; $nom_marq = !empty($_POST['nom_marq']) ? $_POST['nom_marq'] : NULL; //parametres : $rep_dest = "image/"; $extension_autorisees = array('.jpeg','.JPEG','.png','.PNG','.gif','.GIF','.jpg','.JPG'); if($F){ $error = $F["error"]; $file_name = $F['name']; $size = $F['size']; $file_tmp_name = $F['tmp_name']; if(!$error){ if(is_dir($re_dest) && is_writable($re_dest)){ $files_dest = $re_dest.$file_name; $file_extension = strrchr($file_name,"."); if(in_array($file_extension,$extension_autorisees)) { if($size < 5000000){ if(is_uploaded_file($file_tmp_name)){ if (move_uploaded_file($file_tmp_name,$files_dest)){ $statu = 1; $result_insert = insertFileIntoBdd($file_name,$nom_marq,$statu); if($result_insert === true){ echo "<font color='green'>image envoyé avec succès</font>"; }else{ $err[] = $result['err']; } }else{ $err[] = "Impossible de déplacer le fichier $file_tmp_name vers $files_dest"; } }else{ $err[] = "Une erreur est survenue durant l'upload du fichier"; } }else{ $err[] = "($size) : Taille maximum autorisée dépassée "; } }else{ $err[] = "Extension $file_extension non autorisée "; } }else{ $err[] = "Repertoire de destination ($rep_dest )absent ou droits insufisants"; } } } } //Affichage des erreurs si il y en a : if(!empty($err)){ foreach($err as $_r){ echo "<font color='red'>".$_r."</font>"; } }
delavega470
Messages postés
298
Date d'inscription
dimanche 9 février 2014
Statut
Membre
Dernière intervention
24 mars 2020
48
5 juil. 2017 à 16:03
5 juil. 2017 à 16:03
selon l'affichage le repertoir 'image' est absent mais il n'est pas absent !
delavega470
Messages postés
298
Date d'inscription
dimanche 9 février 2014
Statut
Membre
Dernière intervention
24 mars 2020
48
5 juil. 2017 à 16:05
5 juil. 2017 à 16:05
le dossier image est a coté de send.php le tout dans un dossier appelé marque
jordane45
Messages postés
38396
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 janvier 2025
4 732
>
delavega470
Messages postés
298
Date d'inscription
dimanche 9 février 2014
Statut
Membre
Dernière intervention
24 mars 2020
Modifié le 5 juil. 2017 à 16:21
Modifié le 5 juil. 2017 à 16:21
et le dossier marque ... il se trouve où par rapport à la racine de ton site ????
car là :
voudrait dire que le dossier "image" se trouve A LA RACINE de ton site.
Donc.. soit tu passes par du chemin relatif ..... soit tu mets le chemin absolu en partant DE LA RACINE de ton site.
Donc :
Soit :
Soit : (si le dossier marque est, lui même dans un dossier2 qui est lui dans un dossier dossier1 .. enfin.. tu comprends le principe..... )
car là :
$rep_dest = "image/";
voudrait dire que le dossier "image" se trouve A LA RACINE de ton site.
Donc.. soit tu passes par du chemin relatif ..... soit tu mets le chemin absolu en partant DE LA RACINE de ton site.
Donc :
Soit :
$rep_dest = "./image/";
Soit : (si le dossier marque est, lui même dans un dossier2 qui est lui dans un dossier dossier1 .. enfin.. tu comprends le principe..... )
$rep_dest = "dossier1/dossier2/marque/image/";
jordane45
Messages postés
38396
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 janvier 2025
4 732
>
jordane45
Messages postés
38396
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 janvier 2025
5 juil. 2017 à 16:22
5 juil. 2017 à 16:22
perso.. je préconise le chemin ABSOLU depuis la racine du site....
delavega470
Messages postés
298
Date d'inscription
dimanche 9 février 2014
Statut
Membre
Dernière intervention
24 mars 2020
48
5 juil. 2017 à 16:49
5 juil. 2017 à 16:49
je crois c'est c'est bon mais j'ai maintenant ce message
Fatal error: Call to a member function fetch() on a non-object in C
Fatal error: Call to a member function fetch() on a non-object in C
delavega470
Messages postés
298
Date d'inscription
dimanche 9 février 2014
Statut
Membre
Dernière intervention
24 mars 2020
48
5 juil. 2017 à 17:17
5 juil. 2017 à 17:17
oui ça va maintenant mais la photo ne vas pas dans le dossier
jordane45
Messages postés
38396
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 janvier 2025
4 732
5 juil. 2017 à 17:19
5 juil. 2017 à 17:19
La photo ne va pas dans le dossier mais tu as aucun message d'erreur ???
Tu as quand même le message comme quoi ca c'est bien chargé et inséré dans la bdd ?
Tu as quand même le message comme quoi ca c'est bien chargé et inséré dans la bdd ?
delavega470
Messages postés
298
Date d'inscription
dimanche 9 février 2014
Statut
Membre
Dernière intervention
24 mars 2020
48
5 juil. 2017 à 17:25
5 juil. 2017 à 17:25
oui le nom de la photo est dans la bd mais la photo ne se trouve pas dans le dossier voulu et en plus c'est renommer 'image'HP.jepg il ya tjrs image devant associé au vrai nom
jordane45
Messages postés
38396
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 janvier 2025
4 732
5 juil. 2017 à 17:28
5 juil. 2017 à 17:28
Tu dis : dans le bon dossier... c'est à dire ? Elle se trouve ailleurs ??
Ensuite tu nous dis :c'est renommer 'image'HP.jepg ... c'est renommé où ? Dans la BDD ? Dans le répertoire où elle se trouve ????
Faudrait aussi que tu nous montres ton code (celui que tu as désormais avec toutes les corrections que nous avons effectué...) pour qu'on sache si tu n'aurais pas fait une erreur en recopiant.......
Ensuite tu nous dis :c'est renommer 'image'HP.jepg ... c'est renommé où ? Dans la BDD ? Dans le répertoire où elle se trouve ????
Faudrait aussi que tu nous montres ton code (celui que tu as désormais avec toutes les corrections que nous avons effectué...) pour qu'on sache si tu n'aurais pas fait une erreur en recopiant.......
delavega470
Messages postés
298
Date d'inscription
dimanche 9 février 2014
Statut
Membre
Dernière intervention
24 mars 2020
48
5 juil. 2017 à 17:51
5 juil. 2017 à 17:51
j'ai mis dans le dossier voulu c'est juste renommer dans le dossier pas dans la bd
delavega470
Messages postés
298
Date d'inscription
dimanche 9 février 2014
Statut
Membre
Dernière intervention
24 mars 2020
48
Modifié le 5 juil. 2017 à 17:55
Modifié le 5 juil. 2017 à 17:55
<style type="text/css"> .error { color: red; } .success { color:green; }</style> <?php try{ $bd =new PDO('mysql:host=localhost; dbname=macom_bd; 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()); } if (isset($_POST['ok'])) { if(!empty( $_POST['nom_marq'])) { if (!empty($_FILES)) { $file_name = $_FILES["image"]["name"]; $file_extension = strrchr($file_name,"."); $file_tmp_name = $_FILES['image']['tmp_name']; $files_dest = 'marque/image/image'.$file_name; $extension_autorisees = array('.jpeg','.JPEG','.png','.PNG','.gif','.GIF','.jpg','.JPG'); $nom_marq = $_POST['nom_marq']; $statu = 1; //test si l'extension fait partie des extensions autorisées if(in_array($file_extension,$extension_autorisees)) { if($_FILES["image"]["size"] < 5000000) { //envoi de l'image if (move_uploaded_file($file_tmp_name,$files_dest) AND $_FILES["image"]["error"]==0) { //verification de l'image existante $req = 'SELECT id_marq from marque where img_marq="'.$file_name.'" '; $reponse = $bd->query($req); // echo $req; $resultat = $reponse->fetch(); if ($resultat) { echo "<font color='red'>Cette image existe déjà...</font>"; } else { $req = $bd->prepare( 'INSERT INTO marque(nom_marq,img_marq,statu_marq) VALUES (?,?,?)'); $req->execute(array($nom_marq,$file_name,$statu)); echo "<font color='green'>image envoyé avec succès</font>"; } } else { echo "<font color='red'>Une erreur est survenue lors de l'envoi de l'image</font>"; } } else { echo "<font color='red'> Taille de l'image doit être inferieur a 5Mo </font>"; } } else { echo "<font color='red'>seul les images jpeg,jpg,gif et png sont autorisés...</font>"; } } else { echo "<span class ='error'>Veuillez remplir les champs !</span>"; } } } else { echo "<span class ='error'>Veuillez remplir les champs !</span>"; } ?>
jordane45
Messages postés
38396
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 janvier 2025
4 732
5 juil. 2017 à 17:57
5 juil. 2017 à 17:57
Regarde bien ton code
$files_dest = 'marque/image/image'.$file_name;
delavega470
Messages postés
298
Date d'inscription
dimanche 9 février 2014
Statut
Membre
Dernière intervention
24 mars 2020
48
5 juil. 2017 à 18:05
5 juil. 2017 à 18:05
merci pour coup d'oeil !!
jordane45
Messages postés
38396
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 janvier 2025
4 732
>
delavega470
Messages postés
298
Date d'inscription
dimanche 9 février 2014
Statut
Membre
Dernière intervention
24 mars 2020
5 juil. 2017 à 18:18
5 juil. 2017 à 18:18
par contre je vois que je t'ai fait un code propre ... et que finalement tu as remis le tien... c'est dommage quand même...
5 juil. 2017 à 10:28
5 juil. 2017 à 11:13
Il y a quels droits dessus ?
Tu peux aussi, avant de faire le move, t'assurer que le fichier est bien uploadé
https://www.php.net/manual/fr/function.is-uploaded-file.php