Bonjour à tous,

Je retape actuellement un site qui contient une page contenant un formulaire incluant l'ajout d'une pièce jointe.

J'ai cherché sur Internet pendant des heures, trouvant diverses pages me proposant des solutions que j'ai tenté d'adapter à mes besoins, mais je n'y parvient simplement pas.

j'ai notamment trouvé cette page : http://a-pellegrini.developpez.com/t...php/mail/#L3.4
que je l'ai transformé en :
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
 
<?
 
// Récupération des information du formulaire
 
$to = 'adresse-du-destinataire@domaine.com';
$name = $_POST['name'];
$from = $_POST['from'];
$tel = $_POST['tel'];
$object = $_POST['object'];
$contenu = $_POST['contenu'];
 
// clé aléatoire de limite
$boundary = md5(uniqid(microtime(), TRUE));
 
// Headers
$headers = 'From: '.$from."\r\n";
$headers .= 'Mime-Version: 1.0'."\r\n";
$headers .= 'Content-Type: multipart/mixed;boundary='.$boundary."\r\n";
$headers .= "\r\n";
 
// Message HTML
$msg  = '--'.$boundary."\r\n";
$msg .= 'Content-type: text/html; charset=\"iso-8859-1\"'."\r\n\r\n";
$msg .= 'Nom : '.$name."<br>";
$msg .= 'Tél : '.$tel."<br><br>";
$msg .= $contenu."\r\n";
 
// Pièce jointe 1
$file_name = $_FILES['piece_jointe'];
if (file_exists($file_name))
{
	$file_type = filetype($file_name);
	$file_size = filesize($file_name);
 
	$handle = fopen($file_name, 'r') or die('File '.$file_name.'can t be open');
	$content = fread($handle, $file_size);
	$content = chunk_split(base64_encode($content));
	$f = fclose($handle);
 
	$msg .= '--'.$boundary."\r\n";
	$msg .= 'Content-type:'.$file_type.';name='.$file_name."\r\n";
	$msg .= 'Content-transfer-encoding:base64'."\r\n\r\n";
	$msg .= $content."\r\n";
}
 
// Fin
$msg .= '--'.$boundary."\r\n";
 
// Function mail()
mail($to, $object, $msg, $headers);
Et voici mon formulaire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
<form id='soumission' method="post" enctype="multipart/form-data" action="<?php echo( $_SERVER['REQUEST_URI'] ); ?>">  
<label for="name">Votre nom</label><input type="text" name="name" id="name" size="25" value="<?php echo( $name ); ?>" />
<label for="mail">Votre adresse mail</label><input type="text" name="from" id="from" size="25" value="<?php echo( $from ); ?>" /> 
<label for="tel">Votre téléphone</label><input type="text" name="tel" id="tel" size="25" value="<?php echo( $tel ); ?>" />
<label for="object">Objet</label><input type="text" name="object" id="object" size="25" value="<?php echo( $object ); ?>" />
<label for="contenu">Message</label><textarea name="contenu" id="contenu" rows="10" cols="70"><?php echo( $contenu ); ?></textarea>
<label for="fichier">Piece jointe</label><input type="file" name="piece_jointe" id="piece_jointe" />
<input type="reset" name="reset" value="Effacer" /><input type="submit" name="send" value="Envoyer" />
</form>
Mais cela ne fonctionne pas. Le mail est bien envoyé avec toutes les données, mais la pièce jointe n'apparaît pas. Pourriez-vous m'aider à trouver mon/mes erreur(s) et me dire ce que je dois modifier pour que le formulaire fonctionne pour l'envoie de fichiers (.doc, .pdf ou autre).

D'avance un grand merci de votre aide

Thufir Hawat