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. Bonjour delavega470,

    Ton fichier de formulaire est bien juste, peux-ton le voir ?
    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. 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. 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. 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. 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?