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