Menu

Inserer une image php

Messages postés
5
Date d'inscription
samedi 13 avril 2019
Statut
Membre
Dernière intervention
14 avril 2019
-
Bonjour, 

J'essaye d'enregistrer une image mais cela m'affiche un problème.


voici mon code:
<?php
     
if(isset($_POST['enr'])){
     
        $img_blob = addslashes($_FILES['image']['tmp_name']);
        $img_blob = file_get_contents($_FILES['image']['tmp_name']);
        $img_blob = base64_encode($img_blob);
 $x = $bd->prepare("INSERT INTO user(nom,image) VALUES(:nom,:image) WHERE login= :login");
 $x->execute([
      'nom' => $_POST['nom'],
      
      'image' => $img_blob,
   'login' => $_SESSION['login']]);
 
} ?>
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
25294
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 avril 2019
1957
1
Merci
Bonjour,

Pour commencer, merci d'utiliser la coloration syntaxique pour poster ton code
explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Ensuite, le message indique que ta variable n'existe pas (pour les undefined index ) et que ta variable $_FILES est vide pour le troisième message....
http://www.commentcamarche.net/faq/1391-php-notice-undefined-index

D'où proviennent tes variables ?
Un formulaire ? Quel est son code ?

Je t'invite au passage à appliquer ceci :
http://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Et ceci :
http://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 40372 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jordane45
Messages postés
5
Date d'inscription
samedi 13 avril 2019
Statut
Membre
Dernière intervention
14 avril 2019
0
Merci
<?php session_start(); ?>
<!DOCTYPE html>
<html>
<body>

<form class="form-horizontal"  method="post">
 <input type="text" class="form-control" id="exampleInputName1" name="nom" placeholder="Entrer votre nom" value="<?php echo $d['prof'];?>">
  <input type="file" id="exampleInputFile" name="image" >
                        
                        
 <input type="submit" class="btn btn-primary" name="enr">
  </form>
 
 <?php
     
if(isset($_POST['enr'])){
     
        $img_blob = addslashes($_FILES['image']['tmp_name']);
        $img_blob = file_get_contents($_FILES['image']['tmp_name']);
        $img_blob = base64_encode($img_blob);
 $x = $bd->prepare("INSERT INTO user(nom,image) VALUES(:nom,:image) WHERE login= :login");
 $x->execute([
      'nom' => $_POST['nom'],
      
      'image' => $img_blob,
   'login' => $_SESSION['login']]);
 
} ?>
</body>
</html>
jordane45
Messages postés
25294
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 avril 2019
1957 -
Il te manque le
enctype="multipart/form-data"

dans ta balise form
chaimae226
Messages postés
5
Date d'inscription
samedi 13 avril 2019
Statut
Membre
Dernière intervention
14 avril 2019
-
Il m'affiche toujours cet avertissement: file_get_contents (): le nom de fichier ne peut pas être vide
jordane45
Messages postés
25294
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 avril 2019
1957 > chaimae226
Messages postés
5
Date d'inscription
samedi 13 avril 2019
Statut
Membre
Dernière intervention
14 avril 2019
-
fais un
print_r($_FILES);

au début de ton code et regarde ce qu'il contient.
Il serait bien également que tu postes ton code modifié (en ayant tenu compte des conseils donnés dans mes liens précédents )
chaimae226
Messages postés
5
Date d'inscription
samedi 13 avril 2019
Statut
Membre
Dernière intervention
14 avril 2019
-
voici mon nouveau code:
<?php session_start(); ?>

<!DOCTYPE html>
<html>
<body>

<form class="form-horizontal"  method="post" enctype="multipart/form-data">
 <input type="text" class="form-control" id="exampleInputName1" name="nom" placeholder="Entrer votre nom" value="<?php echo $d['prof'];?>">
  <input type="file" id="exampleInputFile" name="image" >
                        
                        
 <input type="submit" class="btn btn-primary" name="enr">
  </form>
 
 <?php
     
if(isset($_POST['enr'])){
     print_r($_FILES);
        $img_blob = addslashes($_FILES['image']['tmp_name']);
        $img_blob = file_get_contents($_FILES['image']['tmp_name']);
        $img_blob = base64_encode($img_blob);
 $x = $bd->prepare("INSERT INTO user(nom,image) VALUES(:nom,:image) WHERE login= :login");
 $x->execute([
      'nom' => $_POST['nom'],
      
      'image' => $img_blob,
   'login' => $_SESSION['login']]);
 $m = $x->fetch();
} ?>
</body>
</html>

cela ne m'affiche aucune erreur et il n'y a aucun avertissement mais quand je retourne vers ma base de donnée l'image n'a pas été inséré.
jordane45
Messages postés
25294
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 avril 2019
1957 -
Tu n'as rien appliqué des liens que je t'ai donné ?!!
Commenter la réponse de chaimae226