upload d'images qi ne fonctionne pas

upload d'images qi ne fonctionne pas - PHP - Programmation

Marsh Posté le 07-04-2007 à 18:33:46    

bonjour tout le monde!
 
Voilà j'apprends le php et comme je suis debutant de chez debutant je n'y arrive pas trop. J'ai 2 problèmes. le 1er est que tous les fichiers se font uploadé alors que je ne veux que les .gif, .jpeg, .jpg et .png. voici mon code:
 
 
<body>
<?php  
if(!empty($_POST['posted'])) {  
    // On vérifie si le champ est rempli  
    if(!empty($_FILES['photo']['name'])) {  
        // On vérifie l'extension du fichier  
        if(substr($nom_file, -3) == $extension) {  
            // On récupère les dimensions du fichier  
            $infos_img = getimagesize($_FILES['photo']['tmp_name']);  
             
            // On vérifie les dimensions et taille de l'image  
            if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($_FILES['photo']['size'] <= $max_size)) {  
                // Si c'est OK, on teste l'upload  
                if(move_uploaded_file($_FILES['photo']['tmp_name'],$target.$_FILES['photo']['name'])) {  
                    // Si upload OK alors on affiche le message de réussite  
                    echo '<b>Image uploadée avec succès !</b>';  
                    echo '<hr />';  
                    echo '<b>Fichier :</b> ', $_FILES['photo']['name'], '<br />';  
                    echo '<b>Taille :</b> ', $_FILES['photo']['size'], ' Octets<br />';  
                    echo '<b>Largeur :</b> ', $infos_img[0], ' px<br />';  
                    echo '<b>Hauteur :</b> ', $infos_img[1], ' px<br />';  
                    echo '<hr />';  
                    echo '<br /><br />';  
                } else {  
                    // Sinon on affiche une erreur système  
                    echo '<b>Problème lors de l\'upload !</b><br /><br /><b>', $_FILES['photo']['error'], '</b><br /><br />';  
                }  
            } else {  
                // Sinon on affiche une erreur pour les dimensions et taille de l'image  
                echo '<b>Problème dans les dimensions ou taille de l\'image !</b><br /><br />';  
            }  
        } else {  
            // Sinon on affiche une erreur pour l'extension  
            echo '<b>Votre image ne comporte pas l\'extension .jpg !</b><br /><br />';  
        }  
    } else {  
        // Sinon on affiche une erreur pour le champ vide  
        echo '<b>Le champ du formulaire est vide !</b><br /><br />';  
    }  
}  
?>
 
mon FORM:
 
<form method="post" name="form2" enctype="multipart/form-data" action="<?php echo $editFormAction; ?>">
     
  <table align="center">
    <tr valign="baseline">
      <td nowrap align="right">Photo:</td>
      <td>
         <input type="file" name="photo" value="" size="32" onChange="view_image()"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">&nbsp;</td>
      <td><input type="submit" value="Insert record" onchange="view_image()"></td>
    </tr>
  </table>
  <input type="hidden" name="id_photos" value="">
  <input type="hidden" name="MM_insert" value="form2">
</form>
</body>
 
 
ai-je oublié qqch?
 
 
mon 2eme probleme:
 
lorsque j'insère une imge par un formulaire d'insertion l'image ne s'affiche pas, et lorsque je regarde la propriété d l'image, c'estun .tmp, alors qu'autrefois non.
 
<Script Language='javascript'>
function view_image(){
  if (document.forms[0].photo.value.indexOf('.jpg',0) == -1 &&
  document.forms[0].photo.indexOf('.JPG',0) == -1 ){
    alert("\nL\'image doit être au format .jpg !\n\n" );
}
else {
  document.emplacement_image.src=document.forms[0].photo.value
}
}
</script>
 
<img src="photos/vignette_photo_<?php echo $row_Rs_photos['photo']; ?>" name="emplacement_image"/>
 
 
merci de bien vouloir m'aider

Reply

Marsh Posté le 07-04-2007 à 18:33:46   

Reply

Marsh Posté le 07-04-2007 à 19:50:31    

Salut
Entoure ton code de [cpp][/cpp] stp merci.


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
Reply

Marsh Posté le 07-04-2007 à 22:21:33    

Reply

Marsh Posté le 07-04-2007 à 23:10:08    

J'ai juste tapé [code]  :heink:


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
Reply

Marsh Posté le 08-04-2007 à 15:40:32    

Code :
  1. <body>
  2. <?php 
  3. if(!empty($_POST['posted'])) { 
  4.     // On vérifie si le champ est rempli   
  5.     if(!empty($_FILES['photo']['name'])) { 
  6.         // On vérifie l'extension du fichier   
  7.         if(substr($nom_file, -3) == $extension) { 
  8.             // On récupère les dimensions du fichier   
  9.             $infos_img = getimagesize($_FILES['photo']['tmp_name']); 
  10.              
  11.             // On vérifie les dimensions et taille de l'image   
  12.             if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($_FILES['photo']['size'] <= $max_size)) { 
  13.                 // Si c'est OK, on teste l'upload   
  14.                 if(move_uploaded_file($_FILES['photo']['tmp_name'],$target.$_FILES['photo']['name'])) { 
  15.                     // Si upload OK alors on affiche le message de réussite   
  16.                     echo '<b>Image uploadée avec succès !</b>'; 
  17.                     echo '<hr />'; 
  18.                     echo '<b>Fichier :</b> ', $_FILES['photo']['name'], '<br />'; 
  19.                     echo '<b>Taille :</b> ', $_FILES['photo']['size'], ' Octets<br />'; 
  20.                     echo '<b>Largeur :</b> ', $infos_img[0], ' px<br />'; 
  21.                     echo '<b>Hauteur :</b> ', $infos_img[1], ' px<br />'; 
  22.                     echo '<hr />'; 
  23.                     echo '<br /><br />'; 
  24.                 } else
  25.                     // Sinon on affiche une erreur système   
  26.                     echo '<b>Problème lors de l\'upload !</b><br /><br /><b>', $_FILES['photo']['error'], '</b><br /><br />'; 
  27.                 } 
  28.             } else
  29.                 // Sinon on affiche une erreur pour les dimensions et taille de l'image   
  30.                 echo '<b>Problème dans les dimensions ou taille de l\'image !</b><br /><br />'; 
  31.             } 
  32.         } else
  33.             // Sinon on affiche une erreur pour l'extension   
  34.             echo '<b>Votre image ne comporte pas l\'extension .jpg !</b><br /><br />'; 
  35.         } 
  36.     } else
  37.         // Sinon on affiche une erreur pour le champ vide   
  38.         echo '<b>Le champ du formulaire est vide !</b><br /><br />'; 
  39.     } 
  40. ?>
  41. mon FORM:
  42. <form method="post" name="form2" enctype="multipart/form-data" action="<?php echo $editFormAction; ?>">
  43.    
  44.   <table align="center">
  45.     <tr valign="baseline">
  46.       <td nowrap align="right">Photo:</td>
  47.       <td>
  48.          <input type="file" name="photo" value="" size="32" onChange="view_image()"></td>
  49.     </tr>
  50.     <tr valign="baseline">
  51.       <td nowrap align="right">&nbsp;</td>
  52.       <td><input type="submit" value="Insert record" onchange="view_image()"></td>
  53.     </tr>
  54.   </table>
  55.   <input type="hidden" name="id_photos" value="">
  56.   <input type="hidden" name="MM_insert" value="form2">
  57. </form>
  58. </body>
  59. ai-je oublié qqch?
  60. mon 2eme probleme:
  61. lorsque j'insère une imge par un formulaire d'insertion l'image ne s'affiche pas, et lorsque je regarde la propriété d l'image, c'estun .tmp, alors qu'autrefois non.
  62. <Script Language='javascript'>
  63. function view_image(){
  64.   if (document.forms[0].photo.value.indexOf('.jpg',0) == -1 &&
  65.   document.forms[0].photo.indexOf('.JPG',0) == -1 ){
  66.     alert("\nL\'image doit être au format .jpg !\n\n" );
  67. }
  68. else {
  69.   document.emplacement_image.src=document.forms[0].photo.value
  70. }
  71. }
  72. </script>
  73. <img src="photos/vignette_photo_<?php echo $row_Rs_photos['photo']; ?>" name="emplacement_image"/>

Reply

Marsh Posté le 08-04-2007 à 15:41:22    

ouais ca a l'air d'etre un peu plus mieux bien... merci

Reply

Marsh Posté le 08-04-2007 à 17:30:04    

Tu devais uniquement mettre le code php/html/javascript entre les balises [:dawa]
 
Bref, il manque $nom_file et $extension.
 
Dans tous les cas, tu souhaiteras surement faire une comparaison d'un tableau de valeur avec le type de fichier envoyer. Car à l'heure actuelle tu compares avec une seule valeur.
 
Autre chose, vérifier l'extension n'est pas suffisant, tu peux renommer n'importe quel fichier en .jpg, il te faut récupérer le vrai type de l'image avec getimagesize()


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed