IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Problème d'upload dans un fichier [PHP 5.2]


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Points : 103
    Points
    103
    Par défaut Problème d'upload dans un fichier
    Bonjour,

    J'ai récupérer un script de redimension d'image et d'upload tiré de ce tutoriel : http://j-reaux.developpez.com/tutori...sionner-image/ afin d'adapter à mon projet j'ai créé une table supplémentaire afin de classer chaque photo par rubrique
    Voici la structure de mes tables
    1) Nes tables :Matable (J'ai ajouté un champs supplementaire) et rubrique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    --
    -- Structure de la table `matable`
    --
     
    CREATE TABLE IF NOT EXISTS `matable` (
      `NUM` int(11) NOT NULL AUTO_INCREMENT,
      `COMMENT1` varchar(255) DEFAULT NULL,
      `PHOTO1` varchar(255) DEFAULT NULL,
      `PICTO1` varchar(255) DEFAULT NULL,
      `Rub_ID` varchar(6) NOT NULL,
      PRIMARY KEY (`NUM`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
     
    --
    -- Structure de la table `rubrique`
    --
     
    CREATE TABLE IF NOT EXISTS `rubrique` (
      `Rub_ID` smallint(6) NOT NULL AUTO_INCREMENT,
      `Rub_Name` varchar(80) NOT NULL,
      `Rub_Desc` tinytext,
      `Rub_Date` date DEFAULT NULL,
      `Rub_Time` time DEFAULT NULL,
      PRIMARY KEY (`Rub_ID`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
    Les deux scripts que j'utilise pour l'upload le formulaire d'upload et le script de traitement
    Le problème me semble venir du script de traitement (ca fonctionne mais les photo n'attérissent pas dans le bon dossier)

    Script : monfichier-form.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
     
    <?php
    // connexion a la base de donnees
       include("../fonction/connexion.php");
    // -----------------------------------------------------------------------------------------------------
     
     //*****************************************************************************************************
    // Récupération des rubrique de ma table rubrique 
    // requete de toutes les RUBRIQUES
    	$query_rub = "SELECT Rub_ID, Rub_Name FROM rubrique ORDER BY Rub_Name DESC";
    	$result_rub = mysql_query($query_rub)  or die('Erreur SQL ! '.$query_rub.'<br/>'.mysql_error());
    //*******************************************************************************************************
    $Rub_Name="";
      // Répertoire des photos et pictos (déprotégé)
       $chemincourt = "../repimages/".$Rub_Name."/";
    // -----------------------------------------------------------------------------------------------------
    // recuperation du nom de la TABLE
       $table=$_GET['CAT'];
    // recuperation du mode de traitement (AJOUTER - MODIFIER - SUPPRIMER)
       $TRAITER=$_GET['TRAITER'];
    // -----------------------------------------------------------------------------------------------------
       if ($TRAITER == 'MODIFIER' || $TRAITER == 'SUPPRIMER') {
          //on recupere aussi le numero de la fiche
          $NUM=$_GET['NUM'];
          // on recupere les donnees la fiche numero NUM
          $query = 'SELECT * FROM '.$table.' WHERE NUM = '. $NUM; 
          $result = mysql_query($query)  or die('Erreur SQL ! '.$query.'<br/>'.mysql_error());
          $val = mysql_fetch_array($result);
       }
    // -----------------------------------------------------------------------------------------------------
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
    <head>
        <meta http-equiv="content-type" content="text/html; charset= UTF-8" />
        <title>MONFICHIER-FORM.php</title>
    </head>
    <body><center>
    <?php
    // -----------------------------------------------------------------------------------------------------
    if ($TRAITER == 'AJOUTER') {
    ?>   
    <div>
       <form name="AJOUTER" method="post" enctype="multipart/form-data" action="MONFICHIER-TRAITER.php">
       <input type="hidden" name="CAT" value="<?php echo $table; ?>">
       <input type="hidden" name="TRAITER" value="<?php echo $TRAITER; ?>">
       AJOUTER<br/>
        <?php
    // formulaire de selection
    echo '<select name="frm_select_rubrique">';
    $Selected = 0;
    while ($row = mysql_fetch_array($result_rub)){
    	if($Selected == 0){
    		echo '<option value="'.$row['Rub_ID'].'" selected="selected">'.$row['Rub_Name'].'</option>';
    		$Selected = 1;
    	} else {
    		echo '<option value="'.$row['Rub_ID'].'">'.$row['Rub_Name'].'</option>';
    	}
    }
    echo '</select>';
    echo '<input type="submit" value="Go"/>';
    echo'<br/>';
    ?>
       Légende :<input type="text" name="COMMENT1" size="50"><br/>
       PHOTO :<input type="FILE" name="PHOTO1" size="50"><br/>
       <a href="#" onclick="history.back()">ANNULER</a>&nbsp;
       <input type="submit" value="CONFIRMER" name="CONFIRMER">&nbsp;
       <input type="reset" value="Rétablir" name="B2">
    </form>
    </div>
    <?php
    } // fin if AJOUTER
    // -----------------------------------------------------------------------------------------------------
    if ($TRAITER == 'MODIFIER') {
    ?>
    <div>
    <form name="MODIFIER" method="post" enctype="multipart/form-data" action="MONFICHIER-TRAITER.php">
       <input type="hidden" name="CAT" value="<?php echo $table; ?>" />
       <input type="hidden" name="TRAITER" value="<?php echo $TRAITER; ?>" />
       <input type="hidden" name="NUM" value="<?php echo $NUM; ?>" />
       <input type="hidden" name="PHOTO1avant" value="<?php echo $val['PHOTO1']; ?>" />
       <input type="hidden" name="PICTO1avant" value="<?php echo $val['PICTO1']; ?>" />
       MODIFIER<br/>
        <?php
    // formulaire de selection
    echo '<select name="frm_select_rubrique">';
    $Selected = 0;
    while ($row = mysql_fetch_array($result_rub)){
    	if($Selected == 0){
    		echo '<option value="'.$row['Rub_ID'].'" selected="selected">'.$row['Rub_Name'].'</option>';
    		$Selected = 1;
    	} else {
    		echo '<option value="'.$row['Rub_ID'].'">'.$row['Rub_Name'].'</option>';
    	}
    }
    echo '</select>';
    echo '<input type="submit" value="Go"/>';
    echo'<br/>';
    ?>
       Légende :<input type="text" name="COMMENT1" size="50" value="<?php echo $val['COMMENT1']; ?>" /><br/>
       <?php if ($val['PHOTO1'] != "") { ?>
           <img alt="" border="0" src="<?php echo $chemincourt.$val['PHOTO1']; ?>" /><br/>
       <?php } ?>
       PHOTO :<input type="file" name="PHOTO1" size="50" /><br/>
       <a href="#" onclick="history.back()">ANNULER</a>&nbsp;
       <input type="submit" value="CONFIRMER" name="CONFIRMER" />&nbsp;
       <input type="reset" value="Rétablir" name="B2" />
    </form>
    </div>
    <?php
    } // fin if MODIFIER
    // -----------------------------------------------------------------------------------------------------
    if ($TRAITER == 'SUPPRIMER') {
    ?>
    <div>
    <form name="SUPPRIMER" method="post" enctype="multipart/form-data" action="MONFICHIER-TRAITER.php">
       <input type="hidden" name="CAT" value="<?php echo $table; ?>" />
       <input type="hidden" name="TRAITER" value="<?php echo $TRAITER; ?>" />
       <input type="hidden" name="NUM" value="<?php echo $NUM; ?>" />
       <input type="hidden" name="PHOTO1avant" value="<?php echo $val['PHOTO1']; ?>" />
       <input type="hidden" name="PICTO1avant" value="<?php echo $val['PICTO1']; ?>" />
       SUPPRIMER ? (ATTENTION : toute suppression est définitive !)<br/>
       <a href="#" onclick="history.back()">ANNULER</a>&nbsp;
       <input type="submit" value="CONFIRMER" name="CONFIRMER" /><br/>
        <?php
    // formulaire de selection
    echo '<select name="frm_select_rubrique">';
    $Selected = 0;
    while ($row = mysql_fetch_array($result_rub)){
    	if($Selected == 0){
    		echo '<option value="'.$row['Rub_ID'].'" selected="selected">'.$row['Rub_Name'].'</option>';
    		$Selected = 1;
    	} else {
    		echo '<option value="'.$row['Rub_ID'].'">'.$row['Rub_Name'].'</option>';
    	}
    }
    echo '</select>';
    echo '<input type="submit" value="Go"/>';
    echo'<br/>';
    ?>
       <?php echo $val['COMMENT1']; ?>
          <?php if ($val['PHOTO1'] != "") { ?>
          <br/><img alt="" border="0" src="<?php echo $chemincourt.$val['PHOTO1']; ?>">
       <?php } ?>
    </form>
    </div>
    <?php
    } // fin if SUPPRIMER
    // -----------------------------------------------------------------------------------------------------
    ?>
    </center>
    </body></html>
    <?php // liberation de la ressource et deconnexion
    if (($TRAITER == 'MODIFIER') || ($TRAITER == 'SUPPRIMER')) { mysql_free_result($result); }
     
    ?>
    Script : monfichier-traiter.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
     
    <?php
    // connexion a la base de donnees
       include("../fonction/connexion.php");
    // FONCTIONS de redimensionnement "physique"
       include("../fonction/fctredimimage.php"); // ("proportionnel")
       include("../fonction/fctcropimage.php"); // ("crop centre")
    // -----------------------------------------------------------------------------------------------------
    // Répertoire des photos et pictos (déprotégé)
       $Rub_ID='';
       $cheminlong = realpath('"../repimages/".$Rub_ID."/"').'\\';
       $chemincourt = "../repimages/".$Rub_ID."/";
    // -------------------------------------------------------------
    // recuperation du nom de la TABLE
       $table=$_POST['CAT'];
    // recuperation du mode de traitement (AJOUTER - MODIFIER - SUPPRIMER)
       $TRAITER=$_POST['TRAITER'];
    // -------------------------------------------------------------
    // Restrictions sur les fichiers :
       $FileSizeMax = 4000000;
       $ExtfichierOK = '" jpg jpeg png gif"'; // (NB : l espace avant .jpg est important)
    // -----------------------------------------------------------------------------------------------------
    // GESTION DES ERREURS (upload fichier)
    // (ne concerne que les options "AJOUTER" et "MODIFIER")
    // -----------------------------------------------------------------------------------------------------
    $erreurfile = 0;
    // si un fichier N a PAS ete poste
    if ($_FILES['PHOTO1']['size']<=0 && $TRAITER == 'AJOUTER') {
         $erreurfile = 1;
         echo 'Erreur ! Pas de fichier IMAGE défini<br/>';
         echo '<a href="#" onclick="history.back()">Retour au formulaire</a>';
    }
    if ($_FILES['PHOTO1']['size']<=0 && $TRAITER == 'MODIFIER' && $_POST['PHOTO1avant']=='') {
         $erreurfile = 1;
         echo 'Erreur ! Pas de fichier IMAGE défini<br/>';
         echo '<a href="#" onclick="history.back()">Retour au formulaire</a>';
    }
    // -------------------------------------------------------------
    // si un fichier a bien ete poste
    if ($_FILES['PHOTO1']['size'] > 0 && ($TRAITER == 'AJOUTER' || $TRAITER == 'MODIFIER')) {
       // on verifie les restrictions sur les fichiers
       // extension
       $tabfile = explode('.',$_FILES['PHOTO1']['name']);
       $extension = $tabfile[sizeof($tabfile)-1]; // dernier element
       $extension = strtolower($extension); // on met en minuscule
       if (strpos($ExtfichierOK,$extension)=='') {
         $erreurfile = 1;
         echo 'Erreur ! Ce n\'est pas un fichier IMAGE (jpg, jpeg, png ou gif)<br/>';
         echo '<a href="#" onclick="history.back()">Retour au formulaire</a>';
       }
       // taille maxi autorisee
       elseif ($_FILES['PHOTO1']['size'] > $FileSizeMax) {
         $erreurfile = 1;
         echo 'Erreur ! Taille de fichier supérieure à la taille maxi autorisée ('.$FileSizeMax.' octets)<br/>';
         echo '<a href="#" onclick="history.back()">Retour au formulaire</a>';
       }
       elseif (UPLOAD_ERR_OK<>0 && UPLOAD_ERR_FORM_SIZE==2) {
         $erreurfile = 1;
         echo 'Erreur ! Taille de fichier trop important ('.$FileSizeMax.' octets)<br/>';
         echo '<a href="#" onclick="history.back()">Retour au formulaire</a>';
       }
    }
    // -----------------------------------------------------------------------------------------------------
    // si PAS d ERREUR : traitement
    if ($erreurfile == 0) {
    // -----------------------------------------------------------------------------------------------------
    // TRAITEMENT du formulaire
    // -----------------------------------------------------------------------------------------------------
    if ($TRAITER == 'AJOUTER') {
       // recuperation des elements du formulaire
       $COMMENT = mysql_real_escape_string($_POST['COMMENT1']);
       // -------------------------------------------------------------
       // ENREGISTREMENT du COMMENT dans la BASE DE DONNEES par INSERT
       $listechamps = 'COMMENT1';
       $listerubrique = 'Rub_ID';
       $listevaleurs = '\''.$COMMENT.'\'';
       $queryNEW = 'INSERT INTO '.$table.'('.$listechamps.','.$listerubrique.') VALUES('.$listevaleurs.','.$listerubrique.')';
       $resultNEW = mysql_query($queryNEW)  or die('Erreur SQL ! '.$queryNEW.'<br/>'.mysql_error());
       // -------------------------------------------------------------
       // recuperation du NUM en selectionnant LA DERNIERE fiche cree
       $query = 'SELECT MAX(NUM) AS NUMmax FROM '.$table; 
       $result = mysql_query($query) or die('Erreur SQL ! '.$query.'<br/>'.mysql_error());
       $val_NUMmax = mysql_fetch_array($result);
       $NUM = $val_NUMmax['NUMmax'];
    }
    // -----------------------------------------------------------------------------------------------------
    if ($TRAITER == 'MODIFIER') {
       // recuperation des elements du formulaire
       $NUM = intval($_POST['NUM']);
       $COMMENT = mysql_real_escape_string($_POST['COMMENT1']);
       $Rub_ID = intval($_POST['Rub_ID']);
       // -------------------------------------------------------------
       // ENREGISTREMENT dans la BASE DE DONNEES par UPDATE
          $SQL = 'UPDATE '.$table.' SET COMMENT1=\''.$COMMENT.'\' WHERE NUM= '.$NUM;
          mysql_query($SQL);
       // -------------------------------------------------------------
       $PHOTO_avant = $_POST['PHOTO1avant'];
       $PICTO_avant = $_POST['PICTO1avant'];
       // par defaut
       $PHOTO = $PHOTO_avant;
       $PICTO = $PICTO_avant;
    }
    // -----------------------------------------------------------------------------------------------------
    // TRAITEMENT des champs FILE (PHOTOS et PICTOS)
    // -----------------------------------------------------------------------------------------------------
    if (($TRAITER == 'AJOUTER') || ($TRAITER == 'MODIFIER')) {
       if(isset($_FILES['PHOTO1']) && $_FILES['PHOTO1']['size'] > 0)
       {
          // -------------------------------------------------------------
          // upload de la PHOTO sous forme NUM_nomfichier
          // NUM etant la CLE primaire de la fiche, ce qui rend le nom UNIQUE
          $PHOTO = $NUM.'_'.$_FILES['PHOTO1']['name'];
          // -------------------------------------------------------------
          // pour eviter tout probleme par la suite, on remplace jpeg par jpg
          $PHOTO = str_replace('.JPEG','.jpg',$PHOTO);
          $PHOTO = str_replace('.jpeg','.jpg',$PHOTO);
          // autre modification : remplacement des caracteres genants (espaces)
          $PHOTO = str_replace(' ','-',$PHOTO);
          // -------------------------------------------------------------
          // extension
          $tabfile = explode('.',$PHOTO);
          $extension = $tabfile[sizeof($tabfile)-1]; // dernier element
          $extension = strtolower($extension); // on met en minuscule
          // -------------------------------------------------------------
          // enregistrement du fichier image dans le repertoire
          $tempfile = $_FILES['PHOTO1']['tmp_name'];
          move_uploaded_file($tempfile, $chemincourt.$PHOTO);
          // -------------------------------------------------------------
          // REDIMENSIONNEMENT et SAUVEGARDE de la PHOTO (si necessaire)
          // -------------------------------------------------------------
          // on veut : une photo de 600 pixels maxi de large
          // ecraser (remplacer) la photo (meme rep, meme nom)
          $redimPHOTOOK = fctredimimage(600,0,'','',$chemincourt,$PHOTO);
          // $redimPHOTOok =1 si OK
          // -------------------------------------------------------------
          // REDIMENSIONNEMENT et SAUVEGARDE du PICTO
          // -------------------------------------------------------------
          // on veut : un picto toujours carre de 100 x 100 pixels (avec crop)
          // enregistrer en ajoutant 'picto_' devant le nom de la photo
          // dans le meme repertoire que la photo
          $redimPICTOok = fctcropimage(0,0,'','picto_'.$PHOTO,$chemincourt,$PHOTO);
          $redimPICTOok = fctredimimage(100,100,'','',$chemincourt,'picto_'.$PHOTO);
          // $redimPICTOok =1 si OK
          // nom du picto pour la BD
          if ($redimPICTOok == 1) {
             $PICTO = 'picto_'.$PHOTO;
          } else {
             $PICTO = $PHOTO;
          }
          // -------------------------------------------------------------
          // SUPPRESSION des anciennes PHOTOS dans le repertoire
          if ($TRAITER == 'MODIFIER') {
             if ($PHOTO_avant != '' && $PHOTO_avant != $PHOTO && $PHOTO_avant != $PICTO) {
             unlink($cheminlong.$PHOTO1avant); // Suppression de la photo
             }
             if ($PICTO_avant != '' && $PICTO_avant != $PHOTO && $PICTO_avant != $PICTO) {
                unlink($cheminlong.$PICTO_avant); // Suppression du picto
             }
          }
          // -------------------------------------------------------------
       } 
       // ----------------------------------------------------------------
       // enregistrement dans la table par UPDATE
       $SQL = 'UPDATE '.$table.' SET PHOTO1=\''.$PHOTO.'\' WHERE NUM= '.$NUM;
       mysql_query($SQL);
       $SQL = 'UPDATE '.$table.' SET PICTO1=\''.$PICTO.'\' WHERE NUM= '.$NUM;
       mysql_query($SQL);
    }
    // -----------------------------------------------------------------------------------------------------
    if ($TRAITER == 'SUPPRIMER') {
       // recuperation des elements du formulaire
       $NUM = intval($_POST['NUM']);
       $PHOTO_avant=$_POST['PHOTO1avant'];
       $PICTO_avant=$_POST['PICTO1avant'];
       // -------------------------------------------------------------
       // SUPPRESSION de la fiche numero NUM dans la BD
       $query = 'DELETE FROM '.$table.' WHERE NUM = '.$NUM ;
       $result = mysql_query($query)  or die('Erreur SQL ! '.$query.'<br/>'.mysql_error());
       // -------------------------------------------------------------
       // SUPPRESSION des PHOTOS dans le repertoire
       if ($PHOTO_avant != '') {
          unlink($cheminlong.$PHOTO_avant); // Suppression de la photo
       }
       if ($PICTO_avant != '' && $PICTO_avant != $PHOTO_avant) {
          unlink($cheminlong.$PICTO_avant); // Suppression du picto
       }
    }
    // -----------------------------------------------------------------------------------------------------
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
    <head>
        <meta http-equiv="content-type" content="text/html; charset= UTF-8" />
        <title>MONFICHIER-TRAITER.php</title>
    </head>
    <body><div align="center">
    <?php
    // -----------------------------------------------------------------------------------------------------
    // AFFICHAGE
    // -----------------------------------------------------------------------------------------------------
    if (($TRAITER == 'AJOUTER') || ($TRAITER == 'MODIFIER')) {
       // -------------------------------------------------------------
       // recuperation des donnees de la nouvelle fiche pour reaffichage
       $query = 'SELECT * FROM '.$table.' WHERE NUM = '. $NUM; 
       $result = mysql_query($query)  or die('Erreur SQL ! '.$query.'<br/>'.mysql_error());
       $val = mysql_fetch_array($result);
       // -------------------------------------------------------------
       if ($TRAITER == 'AJOUTER') { echo 'LA PHOTO a été AJOUTEE.<br/>'; }
       if ($TRAITER == 'MODIFIER') { echo 'LA PHOTO a été MODIFIEE.<br/>'; } 
    ?>
       <a href="MONFICHIER-LISTE.php?CAT=<?php echo $table; ?>">RETOUR</a><br/><br/>
       <?php echo $val['Rub_ID']; ?><br/>
       <?php echo $val['COMMENT1']; ?><br/>
       <?php if ($val['PHOTO1'] != "") { ?>
          <img alt="" border="0" src="<?php echo $chemincourt.$val['PHOTO1']; ?>">
       <?php } ?>
    <?php
    }
    // -----------------------------------------------------------------------------------------------------
    if ($TRAITER == 'SUPPRIMER') {
    ?>   
       LA PHOTO a été SUPPRIMEE.<br/>
       <a href="MONFICHIER-LISTE.php?CAT=<?php echo $table; ?>">RETOUR</a>
    <?php
    }
    // -----------------------------------------------------------------------------------------------------
    } // fin du traitement si PAS d ERREUR
    ?>
    </div>
    </body></html>
    Concernant les fonctions que fais références sont les même du tutoriel

    Ca fait une dizaine de jour que je galère sur ce problème

    Ci-joint une copie d'écran de la structure de mon projet


    Merci de votre aide

    Runcafre91

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $Rub_ID='';
       $cheminlong = realpath('"../repimages/".$Rub_ID."/"').'\\';
       $chemincourt = "../repimages/".$Rub_ID."/";
    Puisque $Rub_ID est une chaine vide, tes deux variables suivantes ne sont pas bonnes.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $Rub_ID='';
       $cheminlong = realpath('"../repimages/".$Rub_ID."/"').'\\';
       $chemincourt = "../repimages/".$Rub_ID."/";
    Puisque $Rub_ID est une chaine vide, tes deux variables suivantes ne sont pas bonnes.
    Bonjour,

    Merci de votre réponse, j'ai défini ma variable mais cela ne change pas grand chose, par contre j'ai la valeur 0 qui apparait dans la table Matable
    Ci-dessous la modification que j'ai fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    // -----------------------------------------------------------------------------------------------------
    // Répertoire des photos et pictos (déprotégé)
       $Rub_ID= $_POST['Rub_ID'];
       $cheminlong = realpath('"../repimages/".$Rub_ID."/"').'\\';
       $chemincourt = "../repimages/".$Rub_ID."/";
    Deplus j'ai l'erreur suivant qui apprait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Notice: Undefined index: Rub_ID in E:\wamp\www\monsite\vue\monfichier-traiter.php on line 9
    Merci de votre aide

    Runcafre91

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Dans ton formulaire le select qui a l'air de fournir Rub_ID s'appelle frm_select_rubrique.
    De plus ta deuxieme variable est mal écrite : tu as un excés de guillemets inutiles voir néfastes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      $Rub_ID= $_POST['frm_select_rubrique'];
       $cheminlong = realpath("../repimages/".$Rub_ID."/");
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Points : 103
    Points
    103
    Par défaut
    Re,

    Merci pour votre réponse mais j'ai toute de même un petit problème que je dois essayé de contourné
    Suite au modification ci-dessous j'ai quasiment la bonne adresse ou copié les upload mais j'ai le numéro du dossier au lieu du nom du dossier
    J'ai essaye de voir ce que cela donnerais en modifiant mon lien mais en remplacant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    // Répertoire des photos et pictos (déprotégé)
       $Rub_ID= $_POST['frm_select_rubrique'];
       $cheminlong = realpath("../repimages/".$Rub_ID."/");
       $chemincourt = "../repimages/".$Rub_ID."/";
    // -------------------------------------------------------------
    Par le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
     
    // Répertoire des photos et pictos (déprotégé)
       $Rub_Name= $_POST['frm_select_rubrique'];
       $cheminlong = realpath("../repimages/".$Rub_Name."/");
       $chemincourt = "../repimages/".$Rub_Name."/";
    // -------------------------------------------------------------
    Mai svoila cela ne fonctionne pas

    Ci-desous le code d'erreur que j'ai avec la première modification
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    Warning: move_uploaded_file(../repimages/1/1_DSC01709.JPG) [function.move-uploaded-file]: failed to open stream: No such file or directory in E:\wamp\www\monsite\vue\monfichier-traiter.php on line 128
     
    Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'E:\wamp\tmp\php69.tmp' to '../repimages/1/1_DSC01709.JPG' in E:\wamp\www\monsite\vue\monfichier-traiter.php on line 128
    Je vous remercie de votre aide

    Je pense que le probleme dois venir de mon formulaire qui m'envoie dnas mon select que le numéro et non la veuleur de celle ci

    Runcafre91

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    un champ de formulaire renvoit uniquement le couple name/value.

    La bonne facon de faire est d'aller lire dans ta base de données a quoi correspond l'id recu.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Points : 103
    Points
    103
    Par défaut
    La valeur envoyé viens de cette partie, je pense avoir une solution de contournement mais je vois pas trop comment l'adapter c'est de mettre un champs caché dans lequelle je stockerais la valeur c'est a dire le nom de la rubrique qui sera repris pour designé le bon dossier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
     
    <div>
       <form name="AJOUTER" method="post" enctype="multipart/form-data" action="MONFICHIER-TRAITER.php">
       <input type="hidden" name="CAT" value="<?php echo $table; ?>">
       <input type="hidden" name="TRAITER" value="<?php echo $TRAITER; ?>">
       AJOUTER<br/>
        <?php
    // formulaire de selection de la rubrique de la table rubrique
    echo '<select name="frm_select_rubrique">';
    $Selected = 0;
    while ($row = mysql_fetch_array($result_rub)){
    	if($Selected == 0){
    		echo '<option value="'.$row['Rub_ID'].'" selected="selected">'.$row['Rub_Name'].'</option>';
    		$Selected = 1;
    	} else {
    		echo '<option value="'.$row['Rub_ID'].'">'.$row['Rub_Name'].'</option>';
    	}
    }
    echo '</select>';
    echo'<br/>';
     
    ?>
     
       Légende :<input type="text" name="COMMENT1" size="50"><br/>
       PHOTO :<input type="FILE" name="PHOTO1" size="50"><br/>
       <a href="#" onclick="history.back()">ANNULER</a>&nbsp;
       <input type="submit" value="CONFIRMER" name="CONFIRMER">&nbsp;
       <input type="reset" value="Rétablir" name="B2">
     
    </form>
    </div>
    le Bout de code ci-dessus me permet d'afficher le nom de la rubrique.
    Lorsque je poste le formulaire j'ai que le numéro de la rubrique au lieu du numéro et du nom.

    Est-t'il possible d'envoyé ces deux valeur via le formaulaire?
    Car pour l'instant dans mon fichier de traitement je ne vois pas comment faire que les photos soient misent dans le bon fichier.

    Je vous remercie de otre aide

    Runcafre91

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je t'ai indiqué la bonne solution.
    Tout le reste c'est du flan.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Je t'ai indiqué la bonne solution.
    Tout le reste c'est du flan.
    Bonjour,

    J'ai modifier le début de mon fichier de traitement ainsi afin de récupérer le nom de la rubrique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    // Répertoire des photos et pictos (déprotégé)
    	$Rub_ID= $_POST['frm_select_rubrique'];
    	$sql = mysql_query("SELECT * FROM rubrique WHERE Rub_ID = '".$Rub_ID."'"); 
     
        $Rub_Name = $sql['Rub_Name'];
     
       $cheminlong = realpath("../repimages/".$Rub_Name."/");
       $chemincourt = "../repimages/".$Rub_Name."/";
    // -------------------------------------------------------------
    J'ai fais des tests et cela ne fonctionne pas, par ailleur j'ai pu résoudre un second problème ce qui était l'insertion en base de donnée

    Merci de votre aide

    Runcafre91

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    il manque le Fetch apres l'execution de ta requete.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème retour chariot dans un fichier texte
    Par Redondo dans le forum Windows
    Réponses: 2
    Dernier message: 08/02/2006, 18h23
  2. Problème de lecture dans un fichier xml
    Par Pyra dans le forum Langage
    Réponses: 2
    Dernier message: 18/12/2005, 00h13
  3. [PERL] Problème lecture/écriture dans un fichier
    Par LE NEINDRE dans le forum Langage
    Réponses: 4
    Dernier message: 17/08/2005, 13h15
  4. Problème d'écriture dans un fichier xml
    Par vanoou dans le forum C++Builder
    Réponses: 1
    Dernier message: 13/07/2005, 02h28
  5. Réponses: 2
    Dernier message: 01/06/2004, 12h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo