Bonjour à tous
Je sais que les questions doivent être posées tous les jours.
J'ai fait un formulaire, mais la difficulté qu'il représente pour moi et que j'y intègre l'envoi de pièce jointe.
J'aimerai, si possible, que vous m'aidiez à le valider, car j'ai l'impression que mes vérifs semblent ne pas être correctes !
Je vous mets un bout de mon code et merci bcp de votre aide :
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
<?php 
$success=false;
$message="";
$verif="!^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-zA-Z]{2,4}$!"; // INIT DES VARIABLES 
if(!isset($_POST['societe'])) $societe=""; else $societe=htmlentities(addslashes($_POST['societe'])); 
...
if(!isset($_FILES['fichier'])) $fichier=""; else $fichier=$_FILES['fichier'];
 
$name_file = $_FILES['fichier']['name']; 
$source = $_FILES['fichier']['tmp_name'];
$typemime = $_FILES['fichier']['type']; 
$taille = $_FILES['fichier']['size'];
 
// extensions autorisées
$extensions_ok = array('txt', 'doc', 'rtf', 'pdf'); 
// la taille maximale du fichier en octets, ici 2mo 
$taille_max = 2097152; 
 
move_uploaded_file($source, "./".$name_file); 
 
//----------------------------------
// Construction de l'entête
//----------------------------------
if (($fichier!="")&&($tel!="")&&($nom!="")&&($prenom!="")&&($mail!="")&&($sujet!="")) { //si champs vides
if(($mail) && (preg_match($verif, $mail))){ // si le mail est bon
if( !in_array( substr(strrchr($_FILES['fichier']['name'], '.'), 1), $extensions_ok ) ) {  //si bon format
if( file_exists($source) && $taille > $taille_max) { // si taille autorisée
if($_FILES['fichier']!="")
{
$boundary = "-----=".md5(uniqid(rand()));
$header = "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
$header .= "\r\n";
 
$msg = "Je vous informe que ceci est un message au format MIME 1.0 multipart/mixed.\r\n";
 
$msg .= "--$boundary\r\n";
 
$msg .= "Content-Type: $typemime; charset=\"iso-8859-1\"\r\n";
$msg .= "Content-Transfer-Encoding:8bit\r\n";
$msg .= "\r\n";
$msg .= "Raison sociale : $societe";
$msg .= "\r\n";
$msg .= "Nom : $nom";
$msg .= "\r\n";
$msg .= "Prénom : $prenom";
$msg .= "\r\n";
$msg .= "Statut : $sujet";
$msg .= "\r\n";
$msg .= "Adresse : ".$_POST['adresse1']."";
$msg .= "\r\n";
$msg .= "Téléphone : $tel";
$msg .= "\r\n";
$msg .= "Portable : $portable";
$msg .= "\r\n";
$msg .= $_POST['message1'];
$msg .= "\r\n";
 
if($name_file!="")
{
$file = $name_file;
$fp = fopen($file, "rb");  
$attachment = fread($fp, filesize($file));
fclose($fp);
 
$attachment = chunk_split(base64_encode($attachment));
 
 
$msg .= "--$boundary\r\n";
$msg .= "Content-Type: $typemime; name=\"$file\"\r\n";
$msg .= "Content-Transfer-Encoding: base64\r\n";
$msg .= "Content-Disposition: attachment; filename=\"$file\"\r\n";
$msg .= "\r\n";
$msg .= $attachment . "\r\n";
$msg .= "\r\n\r\n";
$msg .= "--$boundary--\r\n";
}
 
$destinataire = 'toto@neuf.fr';
$expediteur   = $_POST['mail'];
$reponse      = $expediteur;
 
mail($destinataire, 'Envoi de fichier', $msg,
     "Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header);
 
}
 
if($name_file!="")
{
unlink($name_file);
}
print("<br>\n");
 
 
		//----------------------------------
		// Construction de l'entête
		//----------------------------------
		$success=true;
		$message =  "Votre demande $prenom $nom a &eacute;t&eacute; post&eacute;e avec succ&egrave;s ! <br /> 
		Elle sera trait&eacute;e dans les meilleurs d&eacute;lais.<br /> 
		Nous vous remercions de votre visite !";
		}else{
		$sucess = false;
		$message = 'Extension non autorisée !';  
		}
		}else{
		$sucess = false;
		$message = 'Votre fichier doit faire moins de 2mo !'; 
		}
		}else{
		$verif=false;
		$message= "Cette adresse Email n'est pas valide";
		}
		}else{ 
		$success = false;
		$message = "Merci de remplir les champs obligatoires";
		}
 
?>
Le formulaire semble partir quand meme ou alors bloque sur le meme message d'erreur : taille sup à 2mo
merci !