Inserer une image php

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']]);
 
} ?>

2 réponses

  1. <?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>
    1. Modérateur
      Il te manque le
      enctype="multipart/form-data"
      

      dans ta balise form
    2. Il m'affiche toujours cet avertissement: file_get_contents (): le nom de fichier ne peut pas être vide
    3. Modérateur
      @chaimae226fais 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 )
    4. 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é.
    5. Modérateur
      Tu n'as rien appliqué des liens que je t'ai donné ?!!
  2. Modérateur
    Bonjour,

    Pour commencer, merci d'utiliser la coloration syntaxique pour poster ton code
    explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-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....
    https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index

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

    Je t'invite au passage à appliquer ceci :
    https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
    Et ceci :
    https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs