Bonjour !

J'ai un soucis avec la fonction pièce jointe de mon formulaire.
En fait mon formulaire existait déja, et j'ai voulu y ajouter un champ "Fichier" pour ajouter une pièce jointe au mail automatique envoyé.

Mais j'ai l'impression qu'il ne prends pas en compte le champ d'envoi de mon formulaire dans le fichier de traitement.. Je ne comprends pas pourquoi.

Mon formulaire :

Code html : 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
		<p>
			<form id="form1" method="post" action="add.php" >
				<p class="double">
					<label for="f1-nom"><em  style="color:red">*</em> UI:</label>
					<select name="ui" id="ui">
						<option value=""></option>
						<option value="AL">AL</option>
						<option value="BFC">BFC</option>
						<option value="CA">CA</option>
						<option value="NPC">NPC</option>
						<option value="P">P</option>
					</select>
				</p>
				<p class="double">
					<label for="f1-prenom"><em  style="color:red">*</em> Client:
					<span class="info">(Complétion Automatique)</span></label>
					<input type="text" name="client" autocomplete="off" onKeyUp="suggest(this, 'preetude', 'client');" />
				</p>
				<p class="double">
					<label for="f1-adresse"><em  style="color:red">*</em> Adresse:
					<span class="info">(Numéro, Rue et Ville)</span></label>
					<input type="text" name="adresse" />
				</p>
				<p class="double">
					<label for="f1-adresse">Telephone:
					</label>
					<input type="text" name="tel" />
				</p>
				<p class="double">
					<label for="f1-ville"><em  style="color:red">*</em> Nom Demandeur:</label>
					<input type="text" name="urs" />
				</p>
				<p class="double">
					<label for="f1-ville">Nature de l'Etude:</label>
					<input type="text" name="nature" />
				</p>
				<p class="double">
					<label for="f1-telephone"><em  style="color:red">*</em> Arrivée THD:
					<span class="info">(Format : YYYY-MM-JJ)</span></label>
					<input type="text" name="arrivee" />
				</p>
				<p class="double">
					<label for="f1-telephone"><em  style="color:red">*</em> Dde étude:
					<span class="info">(Format : YYYY-MM-JJ)</span></label>
					<input type="text" name="demetude" value="<?php echo date("Y-m-d"); ?>" />
				</p>
				<p class="double">
					<label for="f1-telephone"><em  style="color:red">*</em> CAFF/ROS:</label>
					<select name="ascaff" id="ascaff">
						<option value=""></option>
						<option value="Bernard SCHATT">Bernard SCHATT</option>
						<option value="Denis DEFFUNT">Denis DEFFUNT</option>
						<option value="Gauthier BEURAERT">Gauthier BEURAERT</option>
						<option value="Jacques HUET">Jacques HUET</option>
						<option value="Ludovic MARET">Ludovic MARET</option>
						<option value="Maxime DE VENDT">Maxime DE VENDT</option>
						<option value="Michel LESCURE">Michel LESCURE</option>
						<option value="Olivier GRANDTENER">Olivier GRANDTENER</option>
						<option value="Olivier PAUCHET">Olivier PAUCHET</option>
						<option value="Steven PAWLAK">Steven PAWLAK</option>
						<option value="Philippe MARZIN">Philippe MARZIN</option>
						<option value="Régis BUNY">Régis BUNY</option>
						<option value="Richard KLEMESIAK">Richard KLEMESIAK</option>
						<option value="Roland SIX">Roland SIX</option>
						<option value="Thierry LAMBRE">Thierry LAMBRE</option>
						<option value="Vincent RETHORE">Vincent RETHORE</option>
						<option value="ZZZ GE AT UI BFC">ZZZ GE AT UI BFC</option>
						<option value="ZZZ PIL AFF UICHAMP">ZZZ PIL AFF UICHAMP</option>
						<option value="ZZZ PILOTAGE THD UI AL">ZZZ PILOTAGE THD UI AL</option>
						<option value="ZZZ THD UPR NE">ZZZ THD UPR NE</option>
					</select>
				</p>
				<p class="double">
					<label for="f1-telephone">Relance:</label>
					<input type="text" name="relance" />
				</p>
				<p class="double">
					<label for="f1-telephone"><em  style="color:red">*</em> Valideur:</label>
					<select name="valideur" id="valideur">
						<option value=""></option>
						<option value="Gauthier BEURAERT">Gauthier BEURAERT</option>
						<option value="Sébastien HEU">Sébastien HEU</option>
						<option value="Steven PAWLAK">Steven PAWLAK</option>
					</select>
				</p>
				<p class="double">
					<label for="f1-infos">Commentaire Etude:
					<span class="info">(Saisissez ici toutes les informations que vous jugerez utiles)</span></label>
					<textarea name="commentaire" rows="150" cols="30">
Cout Global:
 
Delai de Prod:
 
Ref AS D'etude si CAFF UI:</textarea>
				</p>
 
				<p class="double">
					<!-- On limite le fichier à 10Mo -->
					<input type="hidden" name="MAX_FILE_SIZE" value="10000000" />
					<label for="f1-telephone">Fichier : </label>
					<input type="file" name="csv" />
				</p>
 
				<p class="simple">
					<input type="button" value="Envoyer ces informations" onClick="verifForm(this.form)">
					<input type="reset" name="reset" value="Effacer" />
				</p>
			</form>
 
		</p>

Mon script de traitement :

Code php : 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
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
<?php
 
// sélection de la base de données
 
$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :
<br/><br/>";
$msg_ok = "Votre Pré-Etude a bien été ajouté à la base.";
$message = $msg_erreur;
$errs = array();
 
// vérification des champs 
if (empty($_POST['ui'])) 
  $message .= "Votre ui<br/>";
 
 
 
$arr = "".$_POST['arrivee']."";
$sem = "S".date("y", strtotime($arr)).strftime("%U", strtotime($arr));
 
//mois en cours par defaut
$mois_en_cours=date("n", strtotime($arr));
 
//Determine le trimestre en cours (1,2,3,4)
$tri_en_cours = floor(($mois_en_cours-1)/3)+1;
 
//Determine le premier mois du trimestre en cours
$date_mois1_tri = 3*floor(($mois_en_cours-1)/3)+1;
 
$tri = "T".date("y", strtotime($arr))."0".$tri_en_cours;
 
 
// si un champ est vide, on affiche le message d'erreur
if (strlen($message) > strlen($msg_erreur)) {
 
  echo $message;
 
// sinon c'est ok 
} else {
 
  foreach($_POST as $index => $valeur) {
    $$index = mysql_real_escape_string(trim($valeur));
  }
 
  $sql = "INSERT INTO preetude VALUES (NULL,'".$ui."', '".$adresse."', '".$client."', '".$tel."', '".$urs."', '".$nature."', '".$arrivee."', '".$sem."', '".$tri."','".$demetude."','".$ascaff."','".$relance."',NULL,NULL,'".$valideur."','".$commentaire."')";
  $res = mysql_query($sql);
 
  if ($res) {
    echo $msg_ok;
  } else {
    echo mysql_error();
  }
 
}
?>
 
<?php
 
$sql2 = "SELECT LAST_INSERT_ID('preetude')";
//$sql2 = "select MAX(id_etu) AS ID FROM preetude";
$qry = mysql_query($sql2);
while($row = mysql_fetch_assoc($qry)) {
   $dataSQL[] = $row;
}
$id_et = mysql_insert_id();
echo "<br>(ID Pré-Etude : ".$id_et.")";
 
 
 
?>
 
<?php
	if(isset($_FILES['csv']))
	{ 
		 $dossier = 'tmp/';
		 $fichier = basename($_FILES['csv']['name']);
		 if(move_uploaded_file($_FILES['csv']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
		 {
			  echo "Upload du fichier effectué avec succès !";
			  echo "<br>Chemin du fichier : tmp/".$_FILES['csv']['name']."<br><br>";
		 }
		 else //Sinon (la fonction renvoie FALSE).
		 {
			  echo "Echec de l\'upload !";
		 }
	}
 
	//Le chemin d'acces a ton fichier sur le serveur
	$fichier = fopen("tmp/".$_FILES['csv']['name'], "r");
 
	$fichier = "".$dossier."".$_FILES['csv']['name']."";
	$fichier2 = $_FILES['csv']['name'];
 
	echo $fichier;
 
?>
<?php
 
 
 
 
 
 
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui rencontrent des bogues.
{
	$passage_ligne = "\r\n";
}
else
{
	$passage_ligne = "\n";
}
 
 
 
 
 
$comm2 = nl2br($commentaire);
 
// =====Déclaration du message au format TXT.
$message_txt = "
Bonjour <b>$ascaff</b>, 
<p>~ Une nouvelle Pré-Etude vous a été affecté, par <i>OAP-THD</i>. ~</p>
<p>
		<table>
			<tr>
				<td><b>UI</b> :</td>
				<td>$ui</td>
			</tr>
			<tr>
				<td><b>Adresse</b> :</td>
				<td>$adresse</td>
			</tr>
			<tr>
				<td><b>Client</b> :</td>
				<td>$client</td>
			</tr>
			<tr>
				<td><b>Tel</b> :</td>
				<td>$tel</td>
			</tr>
			<tr>
				<td><b>Nature</b> :</td>
				<td>$nature</td>
			</tr>
			<tr>
				<td><b>Arrivée THD</b> :</td>
				<td>$arrivee</td>
			</tr>
			<tr>
				<td><b>Demande d'Etude</b> : </td>
				<td>$demetude</td>
			</tr>
			<tr>
				<td><b>Commentaire</b> : </td>
				<td>$comm2</td>
			</tr>
		</table>
	</p>
";
 
// =====Déclaration du message au format HTML.
$message_html = "
<html>
<head>
</head>
<body>
	<p><img src=\"http://oapthd-pprod.si.francetelecom.fr/styles/logo.png\" alt=\"OAP-THD\" /></p>
	
	<p>
		Bonjour <b>$ascaff</b>,
	</p>
	<p>~ Une nouvelle Pré-Etude vous a été affecté, par <i>OAP-THD</i>. ~</p>

	<p>
		<table>
			<tr>
				<td><b>UI</b> :</td>
				<td>$ui</td>
			</tr>
			<tr>
				<td><b>Adresse</b> :</td>
				<td>$adresse</td>
			</tr>
			<tr>
				<td><b>Client</b> :</td>
				<td>$client</td>
			</tr>
			<tr>
				<td><b>Tel</b> :</td>
				<td>$tel</td>
			</tr>
			<tr>
				<td><b>Nature</b> :</td>
				<td>$nature</td>
			</tr>
			<tr>
				<td><b>Arrivée THD</b> :</td>
				<td>$arrivee</td>
			</tr>
			<tr>
				<td><b>Demande d'Etude</b> : </td>
				<td>$demetude</td>
			</tr>
			<tr>
				<td><b>Commentaire</b> : </td>
				<td>$comm2</td>
			</tr>
		</table>
	</p>
	

	
	</body>
</html>";
 
$message_html.= "".$sign."";
 
//=====Création de la boundary
$boundary = "-----=".md5(rand());
//==========
 
// =====Définition du sujet.
$sujet = "[OAP-THD] Nouvelle Pré-Etude : ".$client."";
// =========
 
// =====Création du header de l'e-mail.
$header = "From: \"ZZZ THD UPR NE\"<****>".$passage_ligne;
$header.= "Reply-to: \"ZZZ THD UPR NE\" <*****>".$passage_ligne;
$header.= "Cc: \"ZZZ THD UPR NE\" <*****>".$passage_ligne;
$header.= "MIME-Version: 1.0".$passage_ligne;
$header.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
// ==========
 
//=====Création du message.
$message = $passage_ligne."--".$boundary.$passage_ligne;
//=====Ajout du message au format texte.
$message.= "Content-Type: text/plain; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_txt.$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary.$passage_ligne;
//=====Ajout du message au format HTML
$message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_html.$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
//==========
 
 
 
// Traitement pour attacher une PJ
// D'abord on lit le fichier
$contenu = file_get_contents($fichier);
$attachement = "\n------=$limite\n";
// Dans mon exemple, il s'agit d'un fichier html, il faut mettre le bon mime type
$attachement .= "Content-Type: text/html; name=\"$fichier2\"\n";
$attachement .= "Content-Transfer-Encoding: base64\n";
$attachement .= "Content-Disposition: attachment; filename=\"$fichier2\"\n\n";
// Ca y est on joint le fichier en l'encodant en base 64
$attachement .= chunk_split(base64_encode($contenu));
 
 
 
 
 
// =====Ajout du message au format HTML
// $message= $passage_ligne.$message_html.$passage_ligne;
// ==========
 
// =====Envoi de l'e-mail.
ini_set('SMTP','***********'); 
mail($mail,$sujet,$message.$attachement,$header);
ini_set('smtp_port',25);
ini_get('SMTP');
// ==========
 
echo ("<br><br>Un mail a été envoyé à <b>$ascaff</b>. ($mail)");
?>

Si quelqu'un arrive a comprendre pourquoi mon fichier ne s'envoi pas a l'envoi de mon formulaire... Je suis perdu

(J'ai supprimé les adresses pour la confidentialité)

merci d'avance !!