Souci d'upload d'image

Résolu
Cocob84 Messages postés 38 Date d'inscription mercredi 10 octobre 2012 Statut Membre Dernière intervention 23 juin 2014 - Modifié par Cocob84 le 23/06/2014 à 11:00
Cocob84 Messages postés 38 Date d'inscription mercredi 10 octobre 2012 Statut Membre Dernière intervention 23 juin 2014 - 23 juin 2014 à 14:37
Bonjour,

Quand je modifie juste un des données, les images ne sont pas garder
et sa me les remplace par le nom du dossier ou contient c'est images soit
./images/




// Utilises ISSET pour vérifier si ENVOYER existe..
if(isset($_POST["envoyer"]))
{
   
  
if(!empty($_FILES["PlanSimple"]))
{
   $dossier = $_SERVER["DOCUMENT_ROOT"] . "/Images/";
   $fichier = basename($_FILES['PlanSimple']['name']);
   //$taille = filesize($_FILES['Etare']['name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg', '.pdf');
$extension = strrchr($_FILES['PlanSimple']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
     $erreur = '<p><center>Vous devez uploader un fichier de type .png, .gif .jpg .jpeg .pdf </center></p>';
}
//Upload du fichier dans le file Manager de One.com
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
     //On formate le nom du fichier ici...
     $fichier = strtr($fichier, 
          'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
     $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
    if(move_uploaded_file($_FILES['PlanSimple']['tmp_name'],$dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
     {
          echo '<p><center>Upload effectué avec succès !</center></p>';
          
     }
     else //Sinon (la fonction renvoie FALSE).
     {
          echo '<p><center>Echec de l\'upload !</center></p>';
     }

}
else
{
     echo $erreur;
}
}

if(!empty($_FILES["PlanETARE"]))
{

$dossier1 = $_SERVER["DOCUMENT_ROOT"] . "/Images/";
$fichier1 = basename($_FILES['PlanETARE']['name']);
//$taille = filesize($_FILES['Etare']['name']);
$extensions1 = array('.png', '.gif', '.jpg', '.jpeg', '.pdf');
$extension1 = strrchr($_FILES['PlanETARE']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension1, $extensions1)) //Si l'extension n'est pas dans le tableau
{
     $erreur1 = '<p><center>Vous devez uploader un fichier de type .png, .gif .jpg .jpeg .pdf </center></p>';
}
//Upload du fichier dans le file Manager de One.com
if(!isset($erreur1)) //S'il n'y a pas d'erreur, on upload
{
     //On formate le nom du fichier ici...
     $fichier1 = strtr($fichier1, 
          'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
     $fichier1 = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier1);
     if(move_uploaded_file($_FILES['PlanETARE']['tmp_name'],$dossier1 . $fichier1)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
     {
          echo '<p><center>Upload effectué avec succès !</center></p>';
          
     }
     else //Sinon (la fonction renvoie FALSE).
     {
          echo '<p><center>Echec de l\'upload !</center></p>';
     }

}
else
{
     echo $erreur1;
}
}
}

  //création de la requête SQL:
  
   $sql = "UPDATE Batimentsrepertories
            SET num     = '$num'    , 
            type        = '$type'   ,
            soustype    = '$sous'   ,
            adresse     = '$adre'   ,
            commune     = '$com'    ,
            groupement  = '$grou'   ,
            compagnie   = '$comp'   ,
            centre      = '$cen'    ,
            codepostal  = '$code'   ,
            risque      = '$risqu'  
            WHERE Num   = '$id' "   ;
             mysql_query($sql);
             

            
    $sql = "UPDATE Consigne
          Set num    = '$num'  ,
          consigne   = '$consi' ,
          plansimple   = 'Images/$fichier' ,
          planetare   = 'Images/$fichier1' ,
          dateajout  = '$dateajo' ,
          datemaj    = '$datemaj'
          WHERE Num  = '$id' " ;
           mysql_query($sql);




  //affichage des résultats, pour savoir si la modification a marchée:
$result = mysql_query($sql);


J'ai effectuée un print_r sur mes requêtes les voici :
UPDATE Batimentsrepertories SET num = '20' , type = '' , soustype = '' , adresse = 'dsfsdf' , commune = '' , groupement = 'fdsf' , compagnie = 'sdfsdfsdf' , centre = '' , codepostal = '0' , risque = '' WHERE Num = '20'


UPDATE Consigne Set num = '20' , consigne = '' , plansimple = 'Images/' , planetare = 'Images/' , dateajout = '2014-06-23' , datemaj = '0000-00-00' WHERE Num = '20' 


Merci d'avance

3 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
23 juin 2014 à 11:37
Bonjour,

Tu fais un Update
 $sql = "UPDATE Consigne
          Set num    = '$num'  ,
          consigne   = '$consi' ,
          plansimple   = 'Images/$fichier' ,
          planetare   = 'Images/$fichier1' ,
          dateajout  = '$dateajo' ,
          datemaj    = '$datemaj'
          WHERE Num  = '$id' " ;
           mysql_query($sql);


Et ce.. même si tes variables $fichier / $fichier1 sont vides.....

L'idéal serait de gérer l'update des Images à part du reste ... et même..dans l'idéal de les traiter dans ton if(!isset($erreur1)) //S'il n'y a pas d'erreur, on upload
0
Cocob84 Messages postés 38 Date d'inscription mercredi 10 octobre 2012 Statut Membre Dernière intervention 23 juin 2014
Modifié par Cocob84 le 23/06/2014 à 11:57
oki je vien de tenté sa fonctionne presque
Quand je saisi L'un sa me garde la valeur de l'autre ou sinon quand je saisi l'autre il me garde la valeur de l'un
Mais quand je saisie rien il me garde la valeur du premier mais pas du deuxième voici ce que j'ai fais :


if(empty($fichier) || empty($fichier1))
{
    
    $sql = "UPDATE Batimentsrepertories
            SET num     = '$num'    , 
            type        = '$type'   ,
            soustype    = '$sous'   ,
            adresse     = '$adre'   ,
            commune     = '$com'    ,
            groupement  = '$grou'   ,
            compagnie   = '$comp'   ,
            centre      = '$cen'    ,
            codepostal  = '$code'   ,
            risque      = '$risqu'  
            WHERE Num   = '$id' "   ;
             mysql_query($sql);
             
                      
    $sql2 = "UPDATE Consigne
          Set num    = '$num'  ,
          consigne   = '$consi' ,
          dateajout  = '$dateajo' ,
          datemaj    = '$datemaj'
          WHERE Num  = '$id' " ;
           mysql_query($sql2);
}
else
{
     $sql = "UPDATE Batimentsrepertories
            SET num     = '$num'    , 
            type        = '$type'   ,
            soustype    = '$sous'   ,
            adresse     = '$adre'   ,
            commune     = '$com'    ,
            groupement  = '$grou'   ,
            compagnie   = '$comp'   ,
            centre      = '$cen'    ,
            codepostal  = '$code'   ,
            risque      = '$risqu'  
            WHERE Num   = '$id' "   ;
             mysql_query($sql);
             

            
    $sql2 = "UPDATE Consigne
          Set num    = '$num'  ,
          consigne   = '$consi' ,
          plansimple   = 'Images/$fichier' ,
          planetare   = 'Images/$fichier1' ,
          dateajout  = '$dateajo' ,
          datemaj    = '$datemaj'
          WHERE Num  = '$id' " ;
           mysql_query($sql2);
}


if(empty($fichier))
{
     $sql = "UPDATE Batimentsrepertories
            SET num     = '$num'    , 
            type        = '$type'   ,
            soustype    = '$sous'   ,
            adresse     = '$adre'   ,
            commune     = '$com'    ,
            groupement  = '$grou'   ,
            compagnie   = '$comp'   ,
            centre      = '$cen'    ,
            codepostal  = '$code'   ,
            risque      = '$risqu'  
            WHERE Num   = '$id' "   ;
             mysql_query($sql);
             

            
    $sql2 = "UPDATE Consigne
          Set num    = '$num'  ,
          consigne   = '$consi' ,
          planetare   = 'Images/$fichier1' ,
          dateajout  = '$dateajo' ,
          datemaj    = '$datemaj'
          WHERE Num  = '$id' " ;
           mysql_query($sql2);
}
else
{
    $sql = "UPDATE Batimentsrepertories
            SET num     = '$num'    , 
            type        = '$type'   ,
            soustype    = '$sous'   ,
            adresse     = '$adre'   ,
            commune     = '$com'    ,
            groupement  = '$grou'   ,
            compagnie   = '$comp'   ,
            centre      = '$cen'    ,
            codepostal  = '$code'   ,
            risque      = '$risqu'  
            WHERE Num   = '$id' "   ;
             mysql_query($sql);
             

            
    $sql2 = "UPDATE Consigne
          Set num    = '$num'  ,
          consigne   = '$consi' ,
          plansimple   = 'Images/$fichier' ,
          dateajout  = '$dateajo' ,
          datemaj    = '$datemaj'
          WHERE Num  = '$id' " ;
           mysql_query($sql2);
}




Merci bien
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
23 juin 2014 à 12:49
Tu peux faire l'Update de tes IMAGES sans avoir à remettre toutes les autres données....
(c'est ça que j'appelle faire "séparément"..)

par exemple :
 $sql2 = "UPDATE  plansimple   = 'Images/$fichier' 
          WHERE Num  = '$id' " ;
           mysql_query($sql2);


Et pour ce qui est de ton champ datemaj (dans ta table)...il existe un champ date de type autoUpdate ... ce qui fait que tu n'as pas à lui mettre de valeur... c'est ta BDD qui la met à jour automatiquement..


Pour ce qui est du déroulement de ton script... je pense que là aussi il y a un souci...de conception...

Il faut que :
Tu fasses la MAJ de tes différents champs (sauf les "fichiers").
Puis... Si fichier1 n'est pas vide... tu le mets à jour
Puis Si fichier2 n'est pas vide ... tu le mets à jour..
0
Cocob84 Messages postés 38 Date d'inscription mercredi 10 octobre 2012 Statut Membre Dernière intervention 23 juin 2014
23 juin 2014 à 13:30
Re pour la date oki je vais aller voir
J'ai testé sa apparemment sa fonctionne qu'est que tu en pense
 $sql = "UPDATE Batimentsrepertories
            SET num     = '$num'    , 
            type        = '$type'   ,
            soustype    = '$sous'   ,
            adresse     = '$adre'   ,
            commune     = '$com'    ,
            groupement  = '$grou'   ,
            compagnie   = '$comp'   ,
            centre      = '$cen'    ,
            codepostal  = '$code'   ,
            risque      = '$risqu'  
            WHERE Num   = '$id' "   ;
             mysql_query($sql);
             
                      
    $sql2 = "UPDATE Consigne
          Set num    = '$num'  ,
          consigne   = '$consi' ,
          dateajout  = '$dateajo' ,
          datemaj    = '$datemaj'
          WHERE Num  = '$id' " ;
           mysql_query($sql2);
           
           
if(empty($fichier) && empty($fichier1))
{
    
}
elseif(empty($fichier))
{

$sql2 = "UPDATE Consigne 
        SET planetare    = 'Images/$fichier1' 
          WHERE Num  = '$id' " ;
           mysql_query($sql2);
  
}
elseif(empty($fichier1))
{

    $sql2 = "UPDATE Consigne 
          SET plansimple  = 'Images/$fichier' 
          WHERE Num  = '$id' " ;
           mysql_query($sql2);
}
else
{
    $sql2=" UPDATE Consigne 
          SET plansimple  = 'Images/$fichier' ,
          planetare = 'Images/$fichier1' 
          WHERE Num  = '$id' " ;
}

0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
23 juin 2014 à 14:09
Pas besoin de passer par des if imbriqués de elseif....

          

if!(!empty($fichier1))
{

$sql2 = "UPDATE Consigne 
        SET planetare    = 'Images/$fichier1' 
          WHERE Num  = '$id' " ;
           mysql_query($sql2);
  
}


if(!empty($fichier))
{

    $sql2 = "UPDATE Consigne 
          SET plansimple  = 'Images/$fichier' 
          WHERE Num  = '$id' " ;
           mysql_query($sql2);
}

0
Cocob84 Messages postés 38 Date d'inscription mercredi 10 octobre 2012 Statut Membre Dernière intervention 23 juin 2014
23 juin 2014 à 14:37
A oui j'ai voulu compliqués et j'essaye de voir pour la maj auto
Merci beaucoup pour ton aide
A Bientôt
0
Rejoignez-nous