Impossible télécharger une image



if (is_uploaded_file($_FILES['image']['tmp_name'])) {
   echo "File ". $_FILES['image']['name'] ." téléchargé avec succès.\n";
   echo "Affichage du contenu\n";
   readfile($_FILES['image']['tmp_name']);
} else {
   echo "Attaque possible par téléchargement de fichier : ";
   echo "Nom du fichier : '". $_FILES['image']['tmp_name'] . "'.";
} 

salut à tous j'ai fais un test avec ce code et on me met attaque possible par téléchargement
comment je peux résoudre ce problème et enregistrer la photo

6 réponses

  1. Contributeur
    1) peux-tu donner les noms de chacun des fichiers php, chaque fois que tu partages un contenu?
    2) le code que tu as montré en #6 n'est pas complet, et ne contient pas le code partiel montré au début de la discussion
    3) peux-tu ajouter
    print_r($_files);
    après
    echo "Attaque possible par téléchargement de fichier : ";
    , et partager ce que cela affiche?
    1. Désolé voici le code
                        
                       if (isset($_GET['pag']) AND ($_GET['pag']='editeMarq.php')) {
                          include('folder_bd/file_bd.php');
                         $code=$_GET['id_marq'];
                        $req3='SELECT nom_marq from marque where id_marq="'.$code.'" ';
      
                        $reponse = $bd->query($req3);
                         while ($data3=$reponse->fetch()) {
                       
                         echo '  <div class="col-lg-4">
                          <div class="panel panel-default">
                              <div class="panel-heading"><img src="img/marque.ico" height="20" widht="20">
                                  Modification 
                              </div>
                              <!-- /.panel-heading -->
                              <div class="panel-body">
                                  <div class="list-group">
                     <form action="#" method="post" name="formulaire" class="formulaire" class="frm" id="frm">
                       <table border="0" padding:12px;>
                         <tr> <td>Nom:</td>
                             <td>
                             <input name="nom_marq_modi"type="text" value="'.$data3['nom_marq'] .'" size="20" />
                             </td>
                         </tr>
                          <tr> <td><br></td>
                             <td></td>
                         </tr>
                         </tr>
                        <tr> <td>Image:</td>
                             <td>
                             <input type="file" name="image_modi">
                             </td>
      
                         </tr>
        
                         </table>
                         </br>
                               <div align="right"> 
                              <button type="submit" name="okm" class="btn btn-success">Modifier</button></div>
                              </form> ';   }
      
      
                     
                                 
                         if(isset($_POST['okm']))
                            {
                                 
                                
                                 if (!empty($_POST['nom_marq_modi']) AND !empty($_FILES)) {
          
        
        $file_name = $_FILES["image_modi"]["name"];
        $file_extension = strrchr($file_name,".");
        $file_tmp_name = $_FILES['image_modi']['tmp_name'];
        $files_dest = 'marque/image/'.$file_name;
        $extension_autorisees = array('.jpeg','.JPEG','.png','.PNG','.gif','.GIF','.jpg','.JPG');
        $statu = 1;
        $nom_marq =$_POST['nom_marq_modi'];
        //test si l'extension fait partie des extensions autorisées
         if(in_array($file_extension,$extension_autorisees))
         { 
           if($_FILES["image_modi"]["size"] < 5000000)
           {
            //envoi de l'image
      
          if (move_uploaded_file($file_tmp_name,$files_dest) AND $_FILES["image_modi"]["error"]==0) {
                  include('folder_bd/file_bd.php');
            $req ='UPDATE marque set 
                                      nom_marq ="'.$nom_marq.'",img_marq="'.$file_name.'",statu_marq="'.$statu.'",
                                      
                                      WHERE id_marq="'.$code.'" ';
                                     
               $data = $bd->query($req);
      
          
            echo "<font color='green'>Marque Modifiée</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 inférieur à 5Mo </font>";
            
            
                  }
                } 
      
                else {
                      echo "<font color='red'>seul les images en format jpeg,jpg,gif et png sont autorisés ! </font>";
                  }
          
      
         } else {
           echo " <font color='red'>veuillez remplir les champs  vides !</font>";
         }
      }  
          
                                  
      
        }
                    
                       ?>
      
      
      
      1. OK voici ce que je veux faire c'est de modifier la photo
        
        
        <form action="#" method="post" name="formulaire" class="formulaire" class="frm" id="frm">
                         <table border="0" padding:12px;>
                           <tr> <td>Nom:</td>
                               <td>
                               <input name="nom_marq_modi"type="text" value="'.$data3['nom_marq'] .'" size="20”/>
                               </td>
                           </tr>
                            <tr> <td><br></td>
                               <td></td>
                           </tr>
                           </tr>
                          <tr> <td>Image:</td>
                               <td>
                               <input type="file" name="image">
                               </td>
        
                           </tr>
          
                           </table>
                           </br>
                                 <div align="right"> 
                                <button type="submit" name="okm" class="btn btn-success">Modifier</button></div>
                                </form>
        
        
      2. Contributeur
        peux-tu ajouter
        print_r($_files);
        après
        echo "Attaque possible par téléchargement de fichier : ";
        , et partager ce que cela affiche?
        je te suggère de nous donner le maximum d'informations, cela nous aidera à t'aider. tu ne nous as donné qu'une partie de ton code, et qu'une partie de ce qu'affiche le programme.
        1. 
          
          <form action="#" method="post" name="formulaire" class="formulaire" class="frm" id="frm">
                           <table border="0" padding:12px;>
                             <tr> <td>Nom:</td>
                                 <td>
                                 <input name="nom_marq_modi"type="text" value="'.$data3['nom_marq'] .'" size="20”/>
                                 </td>
                             </tr>
                              <tr> <td><br></td>
                                 <td></td>
                             </tr>
                             </tr>
                            <tr> <td>Image:</td>
                                 <td>
                                 <input type="file" name="image">
                                 </td>
          
                             </tr>
            
                             </table>
                             </br>
                                   <div align="right"> 
                                  <button type="submit" name="okm" class="btn btn-success">Modifier</button></div>
                                  </form>
          
          
          1. Re-bonjour,

            Tu fais une erreur courante avec les fichiers, il faut changer l'attribut « enctype » :
            <form action="#" method="post" name="formulaire" class="formulaire" class="frm" id="frm" enctype="multipart/form-data">
          2. Contributeur
            où en es-tu avec cette question?
        2. Bonjour delavega470,

          Ton fichier de formulaire est bien juste, peux-ton le voir ?