problem type: FILE

Eléphant du PHP | 258 Messages

24 janv. 2007, 12:06

Bonjour tous le monde.

Me revoila pour de nouvelle aventure dans le monde du php.

Voila j'ai un gros soucis avec les type: file

Je voudrais mettre un valu mais sa ne marche pas.

Je m'explique.

j' ai une page pour inserer des image sur mon site.
Pour se faire j'ai un form qui contient un champ de type file qui va chercher les images sur mon disk dur, pour les inserer dans ma bd.

Ensuite j'ai fais un bouton modif donc qui remer les infos dans tout le form comme le titre de la photos et bien sur le fichier photos.

Exemple : titre: photos de vacance , Fichier : photos1

Mais le probleme c'est que je ne peut pas remarquer un value :photos1 dans un type : file.

Donc j'ai palier en faisant un type : text quand on appuis sur modif, mais la je sa ve dire que je ne peut pas modifier mon image.

Premier probleme.

Mon deuxieme c'est que je n'arrive pas a UPDATE ma bd.



Voici le code, qui est pas tres clair je dois l'avouer, j'essaye pourtant.
<?php if (isset($_GET['modifier_CollecLego'])) 
				{$Modifcoll = mysql_query('SELECT IMLego,TITIMlego,PIMLego,BOXl FROM tcolllego WHERE IDil=' . $_GET['modifier_CollecLego']);
		         $donnees2 = mysql_fetch_array($Modifcoll);
		         $donneesPIMcoll=$donnees2['IMLego'];
				 $PIMcoll= 'photos\Pcollections\Plego\Legominiature/'.$donneesPIMcoll;
				 echo '<input type="text" name="fichier_choisi2" value="babanana">'; 
				 }else{ 
		         echo '<input type="file" name="fichier_choisi2">';}?> 
                <br>
                Taille maxi 100 pixel de large</p>
            <p>Choisir l'image en taille r&eacute;elle : <br>
                 <?php if (isset($_GET['modifier_CollecLego'])) 
				{$Modifcoll1 = mysql_query('SELECT IMLego,TITIMlego,PIMLego,BOXl FROM tcolllego WHERE IDil=' . $_GET['modifier_CollecLego']);
		         $donnees3 = mysql_fetch_array($Modifcoll1);
		         $donneesIMcoll=$donnees3['IMLego'];
				  $IMcoll1= 'photos\Pcollections\Plego\Legonormales/'.$donneesPIMcoll;
				 echo '<input type="text" name="fichier_choisi" value="'.$IMcoll1.'">'; 
				 }else{ 
		         echo '<input type="file" name="fichier_choisi">';}?>
                  <br>
		          <?php 
      if(isset($_FILES['fichier_choisi'])) 

      { 
        //parametres 
        unset($erreur); 
        $extensions_ok = array('png', 'gif', 'jpg', 'jpeg', 'JPG','JPEG','bmp','BMP'); 
        $taille_max = 1000000;
		$taille_max2 = 20000; 
        $dest_dossier = 'photos\Pcollections\Plego\Legonormales'; 
        $dest_dossier2 = 'photos\Pcollections\Plego\Legominiature'; 
		$size = getimagesize("".$_FILES['fichier_choisi']['tmp_name']);
		$size2 = getimagesize("".$_FILES['fichier_choisi2']['tmp_name']); 
        $height = $size[1]; 
        $width = $size[0];
		$height2 = $size[1]; 
        $width2 = $size[0];  
        $taille = 100000;
		 $taille = 20000; 

        // On verrifie les extensions 
         if(( !in_array( substr(strrchr($_FILES['fichier_choisi']['name'], '.'), 1), $extensions_ok ) ) && ( !in_array( substr(strrchr($_FILES['fichier_choisi2']['name'], '.'), 1), $extensions_ok2 ) ))
           { 
             exit("Le fichier choisi n'est pas une image");
          } 
        // On verrifie la taille du fichier 
         elseif(( file_exists($_FILES['fichier_choisi']['name']) and $_FILES['fichier_choisi']['size'] > $taille_max) && ( file_exists($_FILES['fichier_choisi2']['name']) and $_FILES['fichier_choisi2']['size'] > $taille_max2))
           { 
             exit("Le fichier choisi est trop grand");
          } 
        elseif(( file_exists($_FILES['fichier_choisi']['name']) and $height > $taille && $width > $taille) && ( file_exists($_FILES['fichier_choisi2']['name']) and $height2 > $taille2 && $width2 > $taille2)) 
           { 
            exit("Le fichier choisi est trop grand");
          } 

        // Si ficher = bonne taille & bonne extension 
             if(!isset($erreur)) 
             { 

            $dest_fichier = basename($_FILES['fichier_choisi']['name']);
			$dest_fichier2 = basename($_FILES['fichier_choisi2']['name']); 
            //formatage nom fichier 
            //enlever les accents 
            $dest_fichier = strtr($dest_fichier, 
            'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
            'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); 
            // remplacer les caracteres autres que lettres, chiffres et point par _ 
            $dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier); 
            // On upload le fichier
			$dest_fichier2 = strtr($dest_fichier2, 
            'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
            'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); 
            // remplacer les caracteres autres que lettres, chiffres et point par _ 
            $dest_fichier2 = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier2); 
            // On upload le fichier
			
			 
               move_uploaded_file($_FILES['fichier_choisi']['tmp_name'], $dest_dossier .'/'. $_FILES['fichier_choisi']['name']);
			   move_uploaded_file($_FILES['fichier_choisi2']['tmp_name'], $dest_dossier2 .'/'. $_FILES['fichier_choisi2']['name']); 
			  
			  
			  
			  
			  if (($actionajouiml=="Ajouter") && ($modifcoll == 11)) 
			  {
			   if ($BoxD == "DISPOV") 
			   {
			   $BoxVal = '<br><span class="style3">Objet disponible à l\'échange ou à la vente.Pour plus infos</span> <a href="mailto:[email protected]">Contactez-moi</a>.'; 
               $insertLienimgs = "UPDATE tcolllego SET IMLego ='". $_POST['fichier_choisi']['name']."',PIMLego='". $_POST['fichier_choisi2']['name']."',TITIMlego='".$TitreImagLego."', BOXl='". mysql_real_escape_string($BoxVal)."' WHERE IDnotl= " . $IDil ;
               $Result6 = mysql_query($insertLienimgs, $Debaseconnect) or die(mysql_error()); 
	           session_unset();
			   }
			   else
			   {
			   $insertLienimgs = "UPDATE tcolllego SET IMLego ='". $_POST['fichier_choisi']['name']."',PIMLego='". $_POST['fichier_choisi2']['name']."',TITIMlego='".$TitreImagLego."' WHERE IDnotl= " . $IDil ;
               $Result6 = mysql_query($insertLienimgs, $Debaseconnect) or die(mysql_error()); 
		       session_unset();
			   }
			  }
			  elseif (($actionajouiml=="Ajouter") && ($modifcoll == 0))
			  {
			   if ($BoxD == "DISPOV") 
			   {
			   $BoxVal = '<br><span class="style3">Objet disponible à l\'échange ou à la vente.Pour plus infos</span> <a href="mailto:[email protected]">Contactez-moi</a>.'; 
               $insertLienimgs = "INSERT INTO tcolllego (IMLego,PIMLego,TITIMlego, BOXl) ". 
                                 "VALUES ('". $_FILES['fichier_choisi']['name']."','". $_FILES['fichier_choisi2']['name']."' ,'$TitreImagLego','". mysql_real_escape_string($BoxVal)."')"; 
               $Result6 = mysql_query($insertLienimgs, $Debaseconnect) or die(mysql_error()); 
	           session_unset();
			   }
			   else
			   {
			   $insertLienimgs = "INSERT INTO tcolllego (IMLego,PIMLego,TITIMlego) VALUES ('". $_FILES['fichier_choisi']['name']."','". $_FILES['fichier_choisi2']['name']."' ,'$TitreImagLego')";
               $Result6 = mysql_query($insertLienimgs, $Debaseconnect) or die(mysql_error()); 
		       session_unset();
			   }
			  }
			 } 
      }else{ 
       echo("Vous n'avez pas choisit de fichier!!<br>") ;
      } 

?>
Bon j'espere que vous pourrez m'aider.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

24 janv. 2007, 12:17

Voila j'ai un gros soucis avec les type: file
Je voudrais mettre un valu mais sa ne marche pas.
C'est normal. Par mesure de sécurité, tu ne peux pas prérenseigné les champs de type file, sinon tu pourrais mettre n'importe quelle valeur et déclencher la validation du formulaire en javascript, et ainsi récupérer des fichiers sur le disque de l'utilisateur à son insue (faut connaitre leurs noms certes, mais certains fichiers systemes sont présents partout :))

Personnellement, une fois que j'ai une image uploadé, je propose un aperçu avec une case à cocher pour la supprimer et je garde le champ file vide pour permettre de l'écraser. Si aucune valeur n'est passée, je ne fais rien, si j'ai un nouveau fichier, j'écrase, et si la case est cochée, je supprime juste :)
Mon deuxieme c'est que je n'arrive pas a UPDATE ma bd.
C'est à dire ? qu'est ce qui se passe ? erreur sql ? erreur php ? est-ce que tu rentre dans le else ? as-tu testé les valeurs pour vérifier par ou le script passait ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

ViPHP
ViPHP | 2144 Messages

24 janv. 2007, 12:33

Personnellement, une fois que j'ai une image uploadé, je propose un aperçu avec une case à cocher pour la supprimer et je garde le champ file vide pour permettre de l'écraser. Si aucune valeur n'est passée, je ne fais rien, si j'ai un nouveau fichier, j'écrase, et si la case est cochée, je supprime juste :)
Je fais pareil, avantage: si on ne change pas de photos, on évite de devoir la reploader pour rien.

Eléphant du PHP | 258 Messages

24 janv. 2007, 13:42

Merci je vais voir ca .

Mon 2 ieme probleme et je pense du au premier.

Car les infos sont bien envoyer.
Je ressoud le premier et on verra par la suite.

Mais j'ai une question sur ta solution.

Car moi j'ai un bouton pour tout supprimer l'image ,le titre etc..
Mais toi apparament c'est juste pour supprimer l'image.
Car moi l'un ne va pas sans l'autre.
Si on supprime l'image on supprime tout et c'est voulus.
Mais quand on appuis sur le bouton modif c'est pour changer soit le titre ,soit l'image ,soit les deux.

Car si je mais une case a cocher juste pour l'image mais qu'on garde le titre sa me rentrera dans ma bd que le titre .
Et moi je ne veut pas sa.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

24 janv. 2007, 13:54

Ben pas de case à cocher alors ;)

Tout dépend de l'usage que tu fais de ton image.
Si elle est obligatoire, la seule façon de la supprimer doit effectivement être de supprimer l'ensemble des infos.
Si elle est optionnelle, il faut pouvoir la modifier ou la retirer sans nécessairement supprimer le reste, d'où la case qui permet de dire "je retire juste l'image, j'en ai pas d'autre à mettre à la place, mais je veux pas perdre tout ce qui a déjà était fait" :)

Et dans ce cas là, mon traitement derrière consiste juste en un unlink() du fichier et un update du champ dans ma base :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 258 Messages

24 janv. 2007, 14:06

Elle est obligatoire.

Par exemple:

je rentre dans mon form :

En titre : Ma maison en campagne.

Puis la photo : maisonenville.jpg

Je met valider et sa me la mais en bd.

Mais OUPS j'ai fais une boulette j'ai mis le mauvais titre.
Donc bout modif, je change le titre mais je garde la photo.
Donc la moi j'ai mis un champ text avec en value, le nom de la photo pour le recap du nom de la photo.
Sa je serais faire.
MAIS si je change le titre mais que je me dis tient je vais changer la photo aussi et la probleme puisque je peut plus la changer car j'ai un champ text et plus un champ file.

Vous comprennez ou pas.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

24 janv. 2007, 14:17

Vi tout à fait :)

En fait dans ton cas, il suffit de mettre un champ file dont tu laisses la valeur vide (vu que de toute façon, tu peux pas la changer ;)) et tu testes la valeur de celui-ci lors de la mise à jour : S'il est vide, c'est qu'aucune photo n'est envoyée, donc on conserve l'existante et on change juste le titre. S'il est renseigné, tu enregistres la nouvelle image et tu mets à jour ta base :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 258 Messages

24 janv. 2007, 15:30

Comme les grands esprit se rencontre car en te repondant au dessus je me suis dis pourquoi pas faire comme sa.

En tout cas merci je fais sa et je reviend vous dire se qu'il en est.

Eléphant du PHP | 258 Messages

24 janv. 2007, 20:28

Bon voila mon code, j'arrive a update ma base de donnée quand je change le photos mais pas quand je change juste le titre et que je laisse les type file vide.

Ce qui ce produit c'est qu'il execute le code comme si je m'etais une image.
<?php
if (($actionajouiml=="Ajouter") && ($modifcoll == 11)) 
{//1
	  
	  if(isset($_FILES['fichier_choisi']))
	  {//2
	    //parametres 
        unset($erreur); 
        $extensions_ok = array('png', 'gif', 'jpg', 'jpeg', 'JPG','JPEG','bmp','BMP'); 
        $taille_max = 1000000;
		$taille_max2 = 20000; 
        $dest_dossier = 'photos\Pcollections\Plego\Legonormales'; 
        $dest_dossier2 = 'photos\Pcollections\Plego\Legominiature'; 
		$size = getimagesize("".$_FILES['fichier_choisi']['tmp_name']);
		$size2 = getimagesize("".$_FILES['fichier_choisi2']['tmp_name']); 
        $height = $size[1]; 
        $width = $size[0];
		$height2 = $size2[1]; 
        $width2 = $size2[0];  
        $taille = 100000;
		$taille2 = 20000; 

        // On verrifie les extensions 
         if(( !in_array( substr(strrchr($_FILES['fichier_choisi']['name'], '.'), 1), $extensions_ok )) && ( !in_array( substr(strrchr($_FILES['fichier_choisi2']['name'], '.'), 2), $extensions_ok ) ))
           { 
           echo("Le fichier choisi n'est pas une image");
           } 
        // On verrifie la taille du fichier 
         elseif(( file_exists($_FILES['fichier_choisi']['name']) and $_FILES['fichier_choisi']['size'] > $taille_max) && ( file_exists($_FILES['fichier_choisi2']['name']) and $_FILES['fichier_choisi2']['size'] > $taille_max2))
           { 
           echo("Le fichier choisi est trop grand");
           } 
        elseif(( file_exists($_FILES['fichier_choisi']['name']) and $height > $taille && $width > $taille) && ( file_exists($_FILES['fichier_choisi2']['name']) and $height2 > $taille2 && $width2 > $taille2)) 
           { 
           echo("Le fichier choisi est trop grand");
           } 

        // Si ficher = bonne taille & bonne extension 
             if(!isset($erreur)) 
             {//3 

            $dest_fichier = basename($_FILES['fichier_choisi']['name']);
			$dest_fichier2 = basename($_FILES['fichier_choisi2']['name']); 
            //formatage nom fichier 
            //enlever les accents 
            $dest_fichier = strtr($dest_fichier, 
            'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
            'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); 
            // remplacer les caracteres autres que lettres, chiffres et point par _ 
            $dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier); 
            // On upload le fichier
			$dest_fichier2 = strtr($dest_fichier2, 
            'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
            'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); 
            // remplacer les caracteres autres que lettres, chiffres et point par _ 
            $dest_fichier2 = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier2); 
            // On upload le fichier
			
			 
            move_uploaded_file($_FILES['fichier_choisi']['tmp_name'], $dest_dossier .'/'. $_FILES['fichier_choisi']['name']);
			move_uploaded_file($_FILES['fichier_choisi2']['tmp_name'], $dest_dossier2 .'/'. $_FILES['fichier_choisi2']['name']); 
			  
			  
			   if ($BoxD == "DISPOV") 
			   {
			   $BoxVal = '<br><span class="style3">Objet disponible à l\'échange ou à la vente.Pour plus infos</span> <a href="mailto:[email protected]">Contactez-moi</a>.'; 
               $insertLienimgs = "UPDATE tcolllego SET IMLego ='". $_FILES['fichier_choisi']['name']."',PIMLego='". $_FILES['fichier_choisi2']['name']."',TITIMlego='".$TitreImagLego."', BOXl='". mysql_real_escape_string($BoxVal)."' WHERE IDil= " . $_SESSION['IDmodifcoll'] ;
               $Result6 = mysql_query($insertLienimgs, $Debaseconnect) or die(mysql_error()); 
	           session_unset();
			   }
			   else
			   {
			   $insertLienimgs = "UPDATE tcolllego SET IMLego ='". $_FILES['fichier_choisi']['name']."',PIMLego='". $_FILES['fichier_choisi2']['name']."',TITIMlego='".$TitreImagLego."' WHERE IDil= " . $_SESSION['IDmodifcoll'] ;
               $Result6 = mysql_query($insertLienimgs, $Debaseconnect) or die(mysql_error()); 
		       session_unset();
			   }
			  
	       }//3
	  }//2   
	  else
      {//4
	           if ($BoxD == "DISPOV") 
			   {
			   $BoxVal = '<br><span class="style3">Objet disponible à l\'échange ou à la vente.Pour plus infos</span> <a href="mailto:[email protected]">Contactez-moi</a>.'; 
               $insertLienimgs = "UPDATE tcolllego SET TITIMlego='".$TitreImagLego."', BOXl='". mysql_real_escape_string($BoxVal)."' WHERE IDil= " . $_SESSION['IDmodifcoll'] ;
               $Result6 = mysql_query($insertLienimgs, $Debaseconnect) or die(mysql_error()); 
	           session_unset();
			   }
			   else
			   {
			   $insertLienimgs = "UPDATE tcolllego SET TITIMlego='".$TitreImagLego."' WHERE IDil= " . $_SESSION['IDmodifcoll'] ;
               $Result6 = mysql_query($insertLienimgs, $Debaseconnect) or die(mysql_error()); 
		       session_unset();
			   } 
        
       }//4
}//1   		  
elseif (($actionajouiml=="Ajouter") && ($modifcoll == 0))
{//5

     if(isset($_FILES['fichier_choisi'])) 
     {//6 
        //parametres 
        unset($erreur); 
        $extensions_ok = array('png', 'gif', 'jpg', 'jpeg', 'JPG','JPEG','bmp','BMP'); 
        $taille_max = 1000000;
		$taille_max2 = 20000; 
        $dest_dossier = 'photos\Pcollections\Plego\Legonormales'; 
        $dest_dossier2 = 'photos\Pcollections\Plego\Legominiature'; 
		$size = getimagesize("".$_FILES['fichier_choisi']['tmp_name']);
		$size2 = getimagesize("".$_FILES['fichier_choisi2']['tmp_name']); 
        $height = $size[1]; 
        $width = $size[0];
		$height2 = $size2[1]; 
        $width2 = $size2[0];  
        $taille = 100000;
		$taille2 = 20000;

        // On verrifie les extensions 
         if(( !in_array( substr(strrchr($_FILES['fichier_choisi']['name'], '.'), 1), $extensions_ok ) ) && ( !in_array( substr(strrchr($_FILES['fichier_choisi2']['name'], '.'), 2), $extensions_ok ) ))
           { 
           echo("Le fichier choisi n'est pas une image");
           } 
        // On verrifie la taille du fichier 
         elseif(( file_exists($_FILES['fichier_choisi']['name']) and $_FILES['fichier_choisi']['size'] > $taille_max) && ( file_exists($_FILES['fichier_choisi2']['name']) and $_FILES['fichier_choisi2']['size'] > $taille_max2))
           { 
           echo("Le fichier choisi est trop grand");
           } 
        elseif(( file_exists($_FILES['fichier_choisi']['name']) and $height > $taille && $width > $taille) && ( file_exists($_FILES['fichier_choisi2']['name']) and $height2 > $taille2 && $width2 > $taille2)) 
           { 
           echo("Le fichier choisi est trop grand");
           } 

        // Si ficher = bonne taille & bonne extension 
             if(!isset($erreur)) 
             {//7 

            $dest_fichier = basename($_FILES['fichier_choisi']['name']);
			$dest_fichier2 = basename($_FILES['fichier_choisi2']['name']); 
            //formatage nom fichier 
            //enlever les accents 
            $dest_fichier = strtr($dest_fichier, 
            'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
            'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); 
            // remplacer les caracteres autres que lettres, chiffres et point par _ 
            $dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier); 
            // On upload le fichier
			$dest_fichier2 = strtr($dest_fichier2, 
            'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
            'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); 
            // remplacer les caracteres autres que lettres, chiffres et point par _ 
            $dest_fichier2 = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier2); 
            // On upload le fichier
			
			 
               move_uploaded_file($_FILES['fichier_choisi']['tmp_name'], $dest_dossier .'/'. $_FILES['fichier_choisi']['name']);
			   move_uploaded_file($_FILES['fichier_choisi2']['tmp_name'], $dest_dossier2 .'/'. $_FILES['fichier_choisi2']['name']);
          
			   
			   if ($BoxD == "DISPOV") 
			   {
			   $BoxVal = '<br><span class="style3">Objet disponible à l\'échange ou à la vente.Pour plus infos</span> <a href="mailto:[email protected]">Contactez-moi</a>.'; 
               $insertLienimgs = "INSERT INTO tcolllego (IMLego,PIMLego,TITIMlego, BOXl) ". 
                                 "VALUES ('". $_FILES['fichier_choisi']['name']."','". $_FILES['fichier_choisi2']['name']."' ,'$TitreImagLego','". mysql_real_escape_string($BoxVal)."')"; 
               $Result6 = mysql_query($insertLienimgs, $Debaseconnect) or die(mysql_error()); 
	           session_unset();
			   }
			   else
			   {
			   $insertLienimgs = "INSERT INTO tcolllego (IMLego,PIMLego,TITIMlego) VALUES ('". $_FILES['fichier_choisi']['name']."','". $_FILES['fichier_choisi2']['name']."' ,'$TitreImagLego')";
               $Result6 = mysql_query($insertLienimgs, $Debaseconnect) or die(mysql_error()); 
		       session_unset();
			   }
		     }//7 
     }//6
	 else
	 {
	 echo("Vous n'avez pas choisit de fichier!!<br>") ; 
	 }
}//5
?>
Et j'ai chercher mais pas trouvé.

Eléphant du PHP | 258 Messages

25 janv. 2007, 14:42

J'avais oublier de dire qu'il execute le code comme si il y avait des image enfin sa je l'avais dis mais en revanche se que je n'est pas dis c'est qu'il me met "votre fichier n'est pas un fichier image valide" forcement puisque il n'y a pas d'image, pourtant mon code dis bien que si je n'est pas rempli le type file de pas en tenir compte.

Voila si vous pourriez m'aider.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

25 janv. 2007, 17:00

A vérifier, mais je crois que les input de type files sont automatiquement ajoutés à l'objet $_FILES, même si ceux-ci sont vides (comme un input text sera défini dans $_POST même s'il est vide)

Il te faut donc tester non seulement si la variable est définie mais également non vide :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 258 Messages

25 janv. 2007, 19:42

Salut pour definir si la variable et definie c'est ca :
if(isset($_FILES['fichier_choisi'])) 
Mais par contre je sais faire pour si elle est vide :
if(empty($_FILES['fichier_choisi'])) 
Mais pas non vide.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

25 janv. 2007, 22:21

La négation en développement en général (et en php en particulier :)) est généralement exprimé par un point d'exclamation :)
($a && $b) // $a ET $b
!($a && $b) // Non ($a ET $b) cad. Non $a ET Non $b

if( isSet($variable) ) // si $variable est définie
if( !isSet($variable) ) // si $variable n'est pas définie
Je te laisse deviner pour Non vide :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 258 Messages

27 janv. 2007, 12:06

Bon voila j'ai fait se que tu ma dis ryle mais sa ne fonctionne pas sa me fait toujour pareil.
if ((isset($_FILES[Fichier_choisi])) and  (!empty($_FILES[Fichier_choisi])))
Comme j'ai deux fichier image j'ai rajouter sa au cas ou :



if ((isset($_FILES[Fichier_choisi])) and  (!empty($_FILES[Fichier_choisi])) 
and (isset($_FILES[Fichier_choisi]2)) and  (!empty($_FILES
[Fichier_choisi2])))
Désolé pour cette presentation mais sa ne s'afficher pas correctement sinon

Mais fonctionne toujours pas

Eléphant du PHP | 258 Messages

28 janv. 2007, 18:44

Bon voila j'ai change mon code pour utiliser une boucle switch.

Le cas 0 ne marche pas.
Le cas 1 marche.
Le cas 2 ne marche pas.
Le cas 3 ne marche pas.
Et le default ne marche pas j'ai l'erreur:

Code : Tout sélectionner

Notice: Undefined index: IDmodifcoll in c:\program files\easyphp1-7\www\sitedebase\admin\notescolleclego.php on line 455 Erreur de syntaxe près de '' à la ligne 1
Pour le cas 0,2,3,default il execute le code comme si il n'y avait pas de if et de break.

ATTENTION C'EST LONG.
<?php
switch (($actionajouiml=="Ajouter") && ($modifcoll == 11)) 
{//1
	  case 0 :
	  //Si fichier image 1 et 2 sont remplis
	  if((isset($_FILES['fichier_choisi']['name'])) and (!empty($_FILES['fichier_choisi']['name'])) and (isset($_FILES['fichier_choisi2']['name'])) and (!empty($_FILES['fichier_choisi2']['name'])))
	  {//2
	    //parametres 
        unset($erreur); 
        $extensions_ok = array('png', 'gif', 'jpg', 'jpeg', 'JPG','JPEG','bmp','BMP'); 
        $taille_max = 1000000;
		$taille_max2 = 20000; 
        $dest_dossier = 'photos\Pcollections\Plego\Legonormales'; 
        $dest_dossier2 = 'photos\Pcollections\Plego\Legominiature'; 
		$size = getimagesize("".$_FILES['fichier_choisi']['tmp_name']);
		$size2 = getimagesize("".$_FILES['fichier_choisi2']['tmp_name']); 
        $height = $size[1]; 
        $width = $size[0];
		$height2 = $size2[1]; 
        $width2 = $size2[0];  
        $taille = 100000;
		$taille2 = 20000; 

        // On verrifie les extensions 
         if(( !in_array( substr(strrchr($_FILES['fichier_choisi']['name'], '.'), 1), $extensions_ok )) && ( !in_array( substr(strrchr($_FILES['fichier_choisi2']['name'], '.'), 2), $extensions_ok ) ))
           { 
           echo("Le fichier choisi n'est pas une image");
           } 
        // On verrifie la taille du fichier 
         elseif(( file_exists($_FILES['fichier_choisi']['name']) and $_FILES['fichier_choisi']['size'] > $taille_max) && ( file_exists($_FILES['fichier_choisi2']['name']) and $_FILES['fichier_choisi2']['size'] > $taille_max2))
           { 
           echo("Le fichier choisi est trop grand");
           } 
        elseif(( file_exists($_FILES['fichier_choisi']['name']) and $height > $taille && $width > $taille) && ( file_exists($_FILES['fichier_choisi2']['name']) and $height2 > $taille2 && $width2 > $taille2)) 
           { 
           echo("Le fichier choisi est trop grand");
           } 

        // Si ficher = bonne taille & bonne extension 
             if(!isset($erreur)) 
             {//3 

            $dest_fichier = basename($_FILES['fichier_choisi']['name']);
			$dest_fichier2 = basename($_FILES['fichier_choisi2']['name']); 
            //formatage nom fichier 
            //enlever les accents 
            $dest_fichier = strtr($dest_fichier, 
            'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
            'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); 
            // remplacer les caracteres autres que lettres, chiffres et point par _ 
            $dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier); 
            // On upload le fichier
			$dest_fichier2 = strtr($dest_fichier2, 
            'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
            'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); 
            // remplacer les caracteres autres que lettres, chiffres et point par _ 
            $dest_fichier2 = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier2); 
            // On upload le fichier
			
			 
            move_uploaded_file($_FILES['fichier_choisi']['tmp_name'], $dest_dossier .'/'. $_FILES['fichier_choisi']['name']);
			move_uploaded_file($_FILES['fichier_choisi2']['tmp_name'], $dest_dossier2 .'/'. $_FILES['fichier_choisi2']['name']); 
			  
			  
			   if ($BoxD == "DISPOV") 
			   {
			   $BoxVal = '<br><span class="style3">Objet disponible à l\'échange ou à la vente.Pour plus infos</span> <a href="mailto:[email protected]">Contactez-moi</a>.'; 
               $insertLienimgs = "UPDATE tcolllego SET IMLego ='". $_FILES['fichier_choisi']['name']."',PIMLego='". $_FILES['fichier_choisi2']['name']."',TITIMlego='".$TitreImagLego."', BOXl='". mysql_real_escape_string($BoxVal)."' WHERE IDil= " . $_SESSION['IDmodifcoll'] ;
               $Result6 = mysql_query($insertLienimgs, $Debaseconnect) or die(mysql_error()); 
	           session_unset();
			   }
			   else
			   {
			   $insertLienimgs = "UPDATE tcolllego SET IMLego ='". $_FILES['fichier_choisi']['name']."',PIMLego='". $_FILES['fichier_choisi2']['name']."',TITIMlego='".$TitreImagLego."' WHERE IDil= " . $_SESSION['IDmodifcoll'] ;
               $Result6 = mysql_query($insertLienimgs, $Debaseconnect) or die(mysql_error()); 
		       session_unset();
			   }
			  
	       }//3
	  }//2
	  break;   
	  case 1:
	  //Si fichier 1 et rempli mais  2 vide
      if((isset($_FILES['fichier_choisi']['name'])) and (empty($_FILES['fichier_choisi']['name'])) and (isset($_FILES['fichier_choisi2']['name'])) and (!empty($_FILES['fichier_choisi2']['name'])))
	  {//2
	    //parametres 
        unset($erreur); 
        $extensions_ok = array('png', 'gif', 'jpg', 'jpeg', 'JPG','JPEG','bmp','BMP'); 
        
		$taille_max2 = 20000; 
        
        $dest_dossier2 = 'photos\Pcollections\Plego\Legominiature'; 
		
		$size2 = getimagesize("".$_FILES['fichier_choisi2']['tmp_name']); 
        
		$height2 = $size2[1]; 
        $width2 = $size2[0];  
        
		$taille2 = 20000; 

        // On verrifie les extensions 
         if(( !in_array( substr(strrchr($_FILES['fichier_choisi2']['name'], '.'), 2), $extensions_ok ) ))
           { 
           echo("Le fichier choisi n'est pas une image");
           } 
        // On verrifie la taille du fichier 
         elseif(( file_exists($_FILES['fichier_choisi2']['name']) and $_FILES['fichier_choisi2']['size'] > $taille_max2))
           { 
           echo("Le fichier choisi est trop grand");
           } 
        elseif(( file_exists($_FILES['fichier_choisi2']['name']) and $height2 > $taille2 && $width2 > $taille2)) 
           { 
           echo("Le fichier choisi est trop grand");
           } 

        // Si ficher = bonne taille & bonne extension 
             if(!isset($erreur)) 
             {//3 

            
			$dest_fichier2 = basename($_FILES['fichier_choisi2']['name']); 
            
			$dest_fichier2 = strtr($dest_fichier2, 
            'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
            'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); 
            // remplacer les caracteres autres que lettres, chiffres et point par _ 
            $dest_fichier2 = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier2); 
            // On upload le fichier
			
			 
          
			move_uploaded_file($_FILES['fichier_choisi2']['tmp_name'], $dest_dossier2 .'/'. $_FILES['fichier_choisi2']['name']); 
			  
			  
			   if ($BoxD == "DISPOV") 
			   {
			   $BoxVal = '<br><span class="style3">Objet disponible à l\'échange ou à la vente.Pour plus infos</span> <a href="mailto:[email protected]">Contactez-moi</a>.'; 
               $insertLienimgs = "UPDATE tcolllego SET PIMLego='". $_FILES['fichier_choisi2']['name']."',TITIMlego='".$TitreImagLego."', BOXl='". mysql_real_escape_string($BoxVal)."' WHERE IDil= " . $_SESSION['IDmodifcoll'] ;
               $Result6 = mysql_query($insertLienimgs, $Debaseconnect) or die(mysql_error()); 
	           session_unset();
			   }
			   else
			   {
			   $insertLienimgs = "UPDATE tcolllego SET PIMLego='". $_FILES['fichier_choisi2']['name']."',TITIMlego='".$TitreImagLego."' WHERE IDil= " . $_SESSION['IDmodifcoll'] ;
               $Result6 = mysql_query($insertLienimgs, $Debaseconnect) or die(mysql_error()); 
		       session_unset();
			   }
			  
	       }//3
	  }//2
	  break;
	  case 2 :
	  //si fichier 1 vide et 2 rempli
	  if((isset($_FILES['fichier_choisi']['name'])) and (!empty($_FILES['fichier_choisi']['name'])) and (isset($_FILES['fichier_choisi2']['name'])) and (empty($_FILES['fichier_choisi2']['name'])))
	  {//2
	    //parametres 
        unset($erreur); 
        $extensions_ok = array('png', 'gif', 'jpg', 'jpeg', 'JPG','JPEG','bmp','BMP'); 
        $taille_max = 1000000;
		
        $dest_dossier = 'photos\Pcollections\Plego\Legonormales'; 
        
		$size = getimagesize("".$_FILES['fichier_choisi']['tmp_name']);
		
        $height = $size[1]; 
        $width = $size[0];
		 
        $taille = 100000;
		

        // On verrifie les extensions 
         if(( !in_array( substr(strrchr($_FILES['fichier_choisi']['name'], '.'), 1), $extensions_ok )) )
           { 
           echo("Le fichier choisi n'est pas une image");
           } 
        // On verrifie la taille du fichier 
         elseif(( file_exists($_FILES['fichier_choisi']['name']) and $_FILES['fichier_choisi']['size'] > $taille_max) )
           { 
           echo("Le fichier choisi est trop grand");
           } 
        elseif(( file_exists($_FILES['fichier_choisi']['name']) and $height > $taille && $width > $taille)) 
           { 
           echo("Le fichier choisi est trop grand");
           } 

        // Si ficher = bonne taille & bonne extension 
             if(!isset($erreur)) 
             {//3 

            $dest_fichier = basename($_FILES['fichier_choisi']['name']);
			 
            //formatage nom fichier 
            //enlever les accents 
            $dest_fichier = strtr($dest_fichier, 
            'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
            'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); 
            // remplacer les caracteres autres que lettres, chiffres et point par _ 
            $dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier); 
            // On upload le fichier
			
			
			 
            move_uploaded_file($_FILES['fichier_choisi']['tmp_name'], $dest_dossier .'/'. $_FILES['fichier_choisi']['name']);
			
			  
			  
			   if ($BoxD == "DISPOV") 
			   {
			   $BoxVal = '<br><span class="style3">Objet disponible à l\'échange ou à la vente.Pour plus infos</span> <a href="mailto:[email protected]">Contactez-moi</a>.'; 
               $insertLienimgs = "UPDATE tcolllego SET IMLego ='". $_FILES['fichier_choisi']['name']."',TITIMlego='".$TitreImagLego."', BOXl='". mysql_real_escape_string($BoxVal)."' WHERE IDil= " . $_SESSION['IDmodifcoll'] ;
               $Result6 = mysql_query($insertLienimgs, $Debaseconnect) or die(mysql_error()); 
	           session_unset();
			   }
			   else
			   {
			   $insertLienimgs = "UPDATE tcolllego SET IMLego ='". $_FILES['fichier_choisi']['name']."',TITIMlego='".$TitreImagLego."' WHERE IDil= " . $_SESSION['IDmodifcoll'] ;
               $Result6 = mysql_query($insertLienimgs, $Debaseconnect) or die(mysql_error()); 
		       session_unset();
			   }
			  
	       }//3
	  }//2
	  break;
	  case 3:
	  //si le fichier 1 et 2 vide
	  if((isset($_FILES['fichier_choisi']['name'])) and (empty($_FILES['fichier_choisi']['name'])) and (isset($_FILES['fichier_choisi2']['name'])) and (empty($_FILES['fichier_choisi2']['name'])))
      {
	  if ($BoxD == "DISPOV") 
			   {
			   $BoxVal = '<br><span class="style3">Objet disponible à l\'échange ou à la vente.Pour plus infos</span> <a href="mailto:[email protected]">Contactez-moi</a>.'; 
               $insertLienimgs = "UPDATE tcolllego SET TITIMlego='".$TitreImagLego."', BOXl='". mysql_real_escape_string($BoxVal)."' WHERE IDil= " . $_SESSION['IDmodifcoll'] ;
               $Result6 = mysql_query($insertLienimgs, $Debaseconnect) or die(mysql_error()); 
	           session_unset();
			   }
			   else
			   {
			   $insertLienimgs = "UPDATE tcolllego SET TITIMlego='".$TitreImagLego."' WHERE IDil= " . $_SESSION['IDmodifcoll'] ;
               $Result6 = mysql_query($insertLienimgs, $Debaseconnect) or die(mysql_error()); 
		       session_unset();
			   }
      }
	  break;
default :   		  
if (($actionajouiml=="Ajouter") && ($modifcoll == 0))
{//5

     if(isset($_FILES['fichier_choisi'])) 
     {//6 
        //parametres 
        unset($erreur); 
        $extensions_ok = array('png', 'gif', 'jpg', 'jpeg', 'JPG','JPEG','bmp','BMP'); 
        $taille_max = 1000000;
		$taille_max2 = 20000; 
        $dest_dossier = 'photos\Pcollections\Plego\Legonormales'; 
        $dest_dossier2 = 'photos\Pcollections\Plego\Legominiature'; 
		$size = getimagesize("".$_FILES['fichier_choisi']['tmp_name']);
		$size2 = getimagesize("".$_FILES['fichier_choisi2']['tmp_name']); 
        $height = $size[1]; 
        $width = $size[0];
		$height2 = $size2[1]; 
        $width2 = $size2[0];  
        $taille = 100000;
		$taille2 = 20000;

        // On verrifie les extensions 
         if(( !in_array( substr(strrchr($_FILES['fichier_choisi']['name'], '.'), 1), $extensions_ok ) ) && ( !in_array( substr(strrchr($_FILES['fichier_choisi2']['name'], '.'), 2), $extensions_ok ) ))
           { 
           echo("Le fichier choisi n'est pas une image");
           } 
        // On verrifie la taille du fichier 
         elseif(( file_exists($_FILES['fichier_choisi']['name']) and $_FILES['fichier_choisi']['size'] > $taille_max) && ( file_exists($_FILES['fichier_choisi2']['name']) and $_FILES['fichier_choisi2']['size'] > $taille_max2))
           { 
           echo("Le fichier choisi est trop grand");
           } 
        elseif(( file_exists($_FILES['fichier_choisi']['name']) and $height > $taille && $width > $taille) && ( file_exists($_FILES['fichier_choisi2']['name']) and $height2 > $taille2 && $width2 > $taille2)) 
           { 
           echo("Le fichier choisi est trop grand");
           } 

        // Si ficher = bonne taille & bonne extension 
             if(!isset($erreur)) 
             {//7 

            $dest_fichier = basename($_FILES['fichier_choisi']['name']);
			$dest_fichier2 = basename($_FILES['fichier_choisi2']['name']); 
            //formatage nom fichier 
            //enlever les accents 
            $dest_fichier = strtr($dest_fichier, 
            'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
            'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); 
            // remplacer les caracteres autres que lettres, chiffres et point par _ 
            $dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier); 
            // On upload le fichier
			$dest_fichier2 = strtr($dest_fichier2, 
            'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
            'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); 
            // remplacer les caracteres autres que lettres, chiffres et point par _ 
            $dest_fichier2 = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier2); 
            // On upload le fichier
			
			 
               move_uploaded_file($_FILES['fichier_choisi']['tmp_name'], $dest_dossier .'/'. $_FILES['fichier_choisi']['name']);
			   move_uploaded_file($_FILES['fichier_choisi2']['tmp_name'], $dest_dossier2 .'/'. $_FILES['fichier_choisi2']['name']);
          
			   
			   if ($BoxD == "DISPOV") 
			   {
			   $BoxVal = '<br><span class="style3">Objet disponible à l\'échange ou à la vente.Pour plus infos</span> <a href="mailto:[email protected]">Contactez-moi</a>.'; 
               $insertLienimgs = "INSERT INTO tcolllego (IMLego,PIMLego,TITIMlego, BOXl) ". 
                                 "VALUES ('". $_FILES['fichier_choisi']['name']."','". $_FILES['fichier_choisi2']['name']."' ,'$TitreImagLego','". mysql_real_escape_string($BoxVal)."')"; 
               $Result6 = mysql_query($insertLienimgs, $Debaseconnect) or die(mysql_error()); 
	           session_unset();
			   }
			   else
			   {
			   $insertLienimgs = "INSERT INTO tcolllego (IMLego,PIMLego,TITIMlego) VALUES ('". $_FILES['fichier_choisi']['name']."','". $_FILES['fichier_choisi2']['name']."' ,'$TitreImagLego')";
               $Result6 = mysql_query($insertLienimgs, $Debaseconnect) or die(mysql_error()); 
		       session_unset();
			   }
		     }//7 
     }//6
	 else
	 {
	 echo("Vous n'avez pas choisit de fichier!!<br>") ; 
	 }
}//5
}//1
?>
Merci si vous pouvez m'aider.