Simplifier mon code ?

fabrice88
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 289
Inscription: 15 Oct 2007

Simplifier mon code ?

Message le Dim Juil 11, 2010 8:04

Bonjour,
dans la partie adin de mon site j'ai créé un formulaire qui permet d'uploader 5 images sur le serveur.
Code: Tout sélectionner
     <tr>
       <td><div align="right">Photo 1</div></td>
       <td><input name="photo1" type="file" id="photo1" accept="image/gif" /></td>
     </tr>
     <tr>
       <td><div align="right">Photo 2</div></td>
       <td><input name="photo2" type="file" id="photo2" accept="image/gif" /></td>
     </tr>
     <tr>
       <td><div align="right">Photo 3</div></td>
       <td><input name="photo3" type="file" id="photo3" accept="image/gif" /></td>
     </tr>
     <tr>
       <td><div align="right">Photo 4</div></td>
       <td><input name="photo4" type="file" id="photo4" accept="image/gif" /></td>
     </tr>
     
     <tr>
       <td><div align="right">Photo 5</div></td>
       <td><input name="photo5" type="file" id="photo5" accept="image/gif" /></td>
     </tr>


pour valider le telechargement et l'enregitrement dans la base sql je fais :


Code: Tout sélectionner
   //ON TRAITE LA PARTIE PHOTO1
   $nomOrigine = $_FILES['photo1']['name'];
   $elementsChemin = pathinfo($nomOrigine);
   $extensionFichier = $elementsChemin['extension'];
   $extensionsAutorisees = array("jpeg", "jpg", "gif", "png", "JPG");
   if (!(in_array($extensionFichier, $extensionsAutorisees)))
   {
      echo "<div class='erreur'>Le fichier Référence photo n'a pas l'extension attendue</div>";
   }
   else
   {   
      // Copie dans le repertoire du script avec un nom
      // incluant l'heure a la seconde pres
      $repertoireDestination = "../../images/biens/";
      $photo1 = date("dmY").'-'.$nomOrigine;

      if (move_uploaded_file($_FILES["photo1"]["tmp_name"], $repertoireDestination.$photo1))
      {
         echo "La photo porte le nom  : " .$repertoireDestination.$photo1. ". Elle est bien enregistrée <br/>";
      }
      else
      {
         echo "Le fichier n'a pas été uploadé (trop gros ?) ou ".
             "Le déplacement du fichier temporaire a échoué".
             " vérifiez l'existence du répertoire ".$repertoireDestination;
      }
   }
   
   //ON TRAITE LA PARTIE PHOTO2
   $nomOrigine = $_FILES['photo2']['name'];
   $elementsChemin = pathinfo($nomOrigine);
   $extensionFichier = $elementsChemin['extension'];
   $extensionsAutorisees = array("jpeg", "jpg", "gif", "png", "JPG");
   if (!(in_array($extensionFichier, $extensionsAutorisees)))
   {
      echo "<div class='erreur'>Le fichier Référence photo n'a pas l'extension attendue</div>";
   }
   else
   {   
      // Copie dans le repertoire du script avec un nom
      // incluant l'heure a la seconde pres
      $repertoireDestination = "../../images/biens/";
      $photo2 = date("dmY").'-'.$nomOrigine;

      if (move_uploaded_file($_FILES["photo2"]["tmp_name"], $repertoireDestination.$photo2))
      {
         echo "La photo porte le nom  : " .$repertoireDestination.$photo2. ". Elle est bien enregistrée <br/>";
      }
      else
      {
         echo "Le fichier n'a pas été uploadé (trop gros ?) ou ".
             "Le déplacement du fichier temporaire a échoué".
             " vérifiez l'existence du répertoire ".$repertoireDestination;
      }
   }
   
   //ON TRAITE LA PARTIE PHOTO23
   $nomOrigine = $_FILES['photo3']['name'];
   $elementsChemin = pathinfo($nomOrigine);
   $extensionFichier = $elementsChemin['extension'];
   $extensionsAutorisees = array("jpeg", "jpg", "gif", "png", "JPG");
   if (!(in_array($extensionFichier, $extensionsAutorisees)))
   {
      echo "<div class='erreur'>Le fichier Référence photo n'a pas l'extension attendue</div>";
   }
   else
   {   
      // Copie dans le repertoire du script avec un nom
      // incluant l'heure a la seconde pres
      $repertoireDestination = "../../images/biens/";
      $photo3 = date("dmY").'-'.$nomOrigine;

      if (move_uploaded_file($_FILES["photo3"]["tmp_name"], $repertoireDestination.$photo3))
      {
         echo "La photo porte le nom  : " .$repertoireDestination.$photo3. ". Elle est bien enregistrée <br/>";
      }
      else
      {
         echo "Le fichier n'a pas été uploadé (trop gros ?) ou ".
             "Le déplacement du fichier temporaire a échoué".
             " vérifiez l'existence du répertoire ".$repertoireDestination;
      }
   }
   
   //ON TRAITE LA PARTIE PHOTO4
   $nomOrigine = $_FILES['photo4']['name'];
   $elementsChemin = pathinfo($nomOrigine);
   $extensionFichier = $elementsChemin['extension'];
   $extensionsAutorisees = array("jpeg", "jpg", "gif", "png", "JPG");
   if (!(in_array($extensionFichier, $extensionsAutorisees)))
   {
      echo "<div class='erreur'>Le fichier Référence photo n'a pas l'extension attendue</div>";
   }
   else
   {   
      // Copie dans le repertoire du script avec un nom
      // incluant l'heure a la seconde pres
      $repertoireDestination = "../../images/biens/";
      $photo4 = date("dmY").'-'.$nomOrigine;

      if (move_uploaded_file($_FILES["photo4"]["tmp_name"], $repertoireDestination.$photo4))
      {
         echo "La photo porte le nom  : " .$repertoireDestination.$photo4. ". Elle est bien enregistrée <br/>";
      }
      else
      {
         echo "Le fichier n'a pas été uploadé (trop gros ?) ou ".
             "Le déplacement du fichier temporaire a échoué".
             " vérifiez l'existence du répertoire ".$repertoireDestination;
      }
   }
   
   //ON TRAITE LA PARTIE PHOTO5
   $nomOrigine = $_FILES['photo5']['name'];
   $elementsChemin = pathinfo($nomOrigine);
   $extensionFichier = $elementsChemin['extension'];
   $extensionsAutorisees = array("jpeg", "jpg", "gif", "png", "JPG");
   if (!(in_array($extensionFichier, $extensionsAutorisees)))
   {
      echo "<div class='erreur'>Le fichier Référence photo n'a pas l'extension attendue</div>";
   }
   else
   {   
      // Copie dans le repertoire du script avec un nom
      // incluant l'heure a la seconde pres
      $repertoireDestination = "../../images/biens/";
      $photo5 = date("dmY").'-'.$nomOrigine;

      if (move_uploaded_file($_FILES["photo5"]["tmp_name"], $repertoireDestination.$photo5))
      {
         echo "La photo porte le nom  : " .$repertoireDestination.$photo5. ". Elle est bien enregistrée <br/>";
      }
      else
      {
         echo "Le fichier n'a pas été uploadé (trop gros ?) ou ".
             "Le déplacement du fichier temporaire a échoué".
             " vérifiez l'existence du répertoire ".$repertoireDestination;
      }
   }
   
   
   /* Vérification */
   if ( $type == "Choisissez le type" ) {
     echo "<div class='erreur'> Attention ! Veuillez un choisir un type pour cette nouvelle référence.</br></div>";
     $erreur = true;
   }
   if ( $ref == "" ) {
     echo "<div class='erreur'> Veuillez indiquer un nom de référence.</br></div>";
     $erreur = true;
   }
   
   
if ( !$erreur ) {   

      $sql = "INSERT INTO IWbiens(id, type, ref, prix, situation, supbien, supterrain, description, photo1, photo2, photo3, photo4, photo5)
      VALUES('','$type','$ref', '$prix', '$situation', '$supbien', '$supterrain', '$description', '$photo1', '$photo2', '$photo3', '$photo4', '$photo5' )";
      
      mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
      
      echo 'La nouvelle référence a été ajoutée.';
      }
      mysql_close();
?>





Je voudrai simplifier tout ça car je repete 5 foois la meme chose en changent juste photo1 par photo2 puis photos3...

dans ma base de données j'ai donc 5 champs qui sont només : photo1, photos2, photo3, photo4, photo5.

Comment fair pour alléger le systeme tout en reussisent a enregistrer les nom dans la base ?

nervusdm
WRInaute impliqué
WRInaute impliqué
 
Messages: 539
Inscription: 5 Jan 2008

Re: Simplifier mon code ?

Message le Dim Juil 11, 2010 9:38

Salut, avec un $i que tu incrémente à chaque fois.

for($i=1;$i < 6;$i++)
{
ton code avec du
'photo' . $i
}

fabrice88
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 289
Inscription: 15 Oct 2007

Re: Simplifier mon code ?

Message le Dim Juil 11, 2010 14:08

ah oui tout simplement. bon je vai testé ça.
Merci


Zecat
WRInaute accro
WRInaute accro
 
Messages: 12003
Inscription: 1 Mar 2005

Re: Simplifier mon code ?

Message le Dim Juil 11, 2010 14:10

fabrice88 a écrit:ah oui tout simplement. bon je vai testé ça.
Merci

:roll: :mrgreen:


spout
WRInaute accro
WRInaute accro
 
Messages: 4382
Inscription: 14 Mai 2003

Re: Simplifier mon code ?

Message le Dim Juil 11, 2010 14:16

Heureusement que c'est dans la partie "admin": juste un seul test sur l'extension pour savoir si c'est une image... :)
Il faut tester le MIME type aussi: http://php.net/manual/fr/function.getimagesize.php


aladdin
WRInaute passionné
WRInaute passionné
 
Messages: 1457
Inscription: 29 Avr 2005

Re: Simplifier mon code ?

Message le Dim Juil 11, 2010 18:02

J'espère que tu sécurise bien comme il faut l'accès à ton formulaire, et que tu "sanitize" correctement les entrée, à vue de nez au moins une injection SQL est possible.

fabrice88
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 289
Inscription: 15 Oct 2007

Re: Simplifier mon code ?

Message le Lun Juil 12, 2010 8:32

oui je suis en train de mettre les protection en place avec mysql-real-escapstring (pour l'injection) ... htmlentities (pour l'affichage...


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités