Souci d'upload d'image [Résolu]

Signaler
Messages postés
38
Date d'inscription
mercredi 10 octobre 2012
Statut
Membre
Dernière intervention
23 juin 2014
-
Messages postés
38
Date d'inscription
mercredi 10 octobre 2012
Statut
Membre
Dernière intervention
23 juin 2014
-
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

Messages postés
32986
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 juin 2021
351
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
Messages postés
38
Date d'inscription
mercredi 10 octobre 2012
Statut
Membre
Dernière intervention
23 juin 2014

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
Messages postés
32986
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 juin 2021
351
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..
Messages postés
38
Date d'inscription
mercredi 10 octobre 2012
Statut
Membre
Dernière intervention
23 juin 2014

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' " ;
}

Messages postés
32986
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 juin 2021
351
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);
}

Messages postés
38
Date d'inscription
mercredi 10 octobre 2012
Statut
Membre
Dernière intervention
23 juin 2014

A oui j'ai voulu compliqués et j'essaye de voir pour la maj auto
Merci beaucoup pour ton aide
A Bientôt