Bonjour les développeurs,

Quelqu'un peux m'aider a modifier ces codes ?

Oft j'aimerais envoyé un mail avec pièce jointe depuis le formulaire,
le message est bien envoyé mais la pièce a une taille de 4 ko et impossible de l'ouvrir.

Voici le code :

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
<?php
 
error_reporting(E_ALL); ini_set("display_errors", 1); //Affichier l'erreur
 
    if (get_magic_quotes_gpc()){  
        $nom = stripslashes(htmlentities($_POST['nom']));
        $email_from = stripslashes(htmlentities($_POST['email']));
        $message = stripslashes(htmlentities($_POST['message']));
    }else{  
	//Évitez les injections en cas de courrier HTML
        $nom = htmlentities($_POST['nom']);
        $email_from = htmlentities($_POST['email']); 
        $message = htmlentities($_POST['message']);
    }
 
 
    if(preg_match("#@(hotmail|live|msn).[a-z]{2,4}$#", $email_from))
    {
        $passage_ligne = "\n";
    }
    else
    {
        $passage_ligne = "\r\n";
    }
 
    $email_to = "moi@gmail.com"; //Recepteur
    $email_subject = "J'ai envoyé le document"; //Sujet
    $boundary = md5(rand()); // Clé de limite aléatoire
 
    function clean_string($string) {
        $bad = array("content-type","bcc:","to:","cc:","href");
        return str_replace($bad,"",$string);
    } 
 
    $headers = "From: \"".$nom."\"<".$email_from.">" . $passage_ligne; //Expéditeur
    $headers.= "Reply-to: \"".$nom."\" <".$email_from.">" . $passage_ligne; //Expéditeur
    $headers.= "MIME-Version: 1.0" . $passage_ligne; //MIME Version
    $headers.= 'Content-Type: multipart/mixed; boundary='.$boundary .' '. $passage_ligne; //Contenu (2 versions ex: text / plain et text / html)
 
    $email_message = '--' . $boundary . $passage_ligne; //
    $email_message .= "Content-Type: text/plain; charset=\"utf-8\"" . $passage_ligne; //Contenu type
    $email_message .= "Content-Transfer-Encoding: 8bit" . $passage_ligne; //Encoding
    $email_message .= $passage_ligne .clean_string($message). $passage_ligne; //Contenu
 
	//Pièce Jointe
    if(isset($_FILES["fichier"]) &&  $_FILES['fichier']['name'] != ""){ // Vérifier si le fichier existe
        $nom_fichier = $_FILES['fichier']['name'];
        $source = $_FILES['fichier']['tmp_name'];
        $type_fichier = $_FILES['fichier']['type'];
        $taille_fichier = $_FILES['fichier']['size'];
 
        if($nom_fichier != ".htaccess"){ // Vérifiez si ce n'est pas un fichier .htaccess
			 if($type_fichier == "application/msword" 
                || $type_fichier == "application/msword" 
				|| $type_fichier == "application/rtf"
				|| $type_fichier == "application/vnd.openxmlformats-officedocument.wordprocessingml.document" 
			    || $type_fichier == "application/pdf"){ // Type pièce
 
                if ($taille_fichier <= 4000000) { // Taille supérieure à 4 Mo
                    $tabRemplacement = array("é"=>"e", "è"=>"e", "à"=>"a"); //Changing special characters
 
                    $handle = fopen($source, 'n'); //Ouverture du fichier
                    $content = fread($handle, $taille_fichier); //Lecture du fichier
                    $encoded_content = chunk_split(base64_encode($content)); //Encodage
                    $f = fclose($handle); //Fermeture du fichier
 
                    $email_message .= $passage_ligne . "--" . $boundary . $passage_ligne; // Deuxième ouverture des limites
                    $email_message .= 'Content-type:'.$type_fichier.';name="'.$nom_fichier.'"'."\n"; 
                    $email_message .='Content-Disposition: attachment; filename="'.$nom_fichier.'"'."\n"; // Informer qu'il y a une pièce jointe
                    $email_message .= 'Content-transfer-encoding:base64'."\n"; //Encodage
                    $email_message .= "\n"; //Blank line. IMPORTANT !
                    $email_message .= $encoded_content."\n"; //Pièce jointe
 
                }else{
					// Message d'erreur si la pièce jointe supérieure à 2 Mo
                    $email_message .= $passage_ligne ."L'utilisateur a tenté de vous envoyer une pièce jointe mais celle ci était superieure à 4Mo.". $passage_ligne;
                }
            }else{
 
                // Message d'erreur si le type de contenu incorrect pour la pièce jointe
                $email_message .= $passage_ligne ."L'utilisateur a tenté de vous envoyer une pièce jointe mais elle n'était pas au bon format.". $passage_ligne;
            }
        }else{
 
            // Message d'erreur pour l'envoi d'un fichier .htaccess
            $email_message .= $passage_ligne ."L'utilisateur a tenté de vous envoyer une pièce jointe .htaccess.". $passage_ligne;
        }
    }
 
    $email_message .= $passage_ligne . "--" . $boundary . "--" . $passage_ligne; // Fermeture des limites
 
    if(mail($email_to,$email_subject, $email_message, $headers)==true){  //Envoi de mail
 
        header('Location: local.html'); //Redirection
    }
 
?>
Code HTML

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
<form action="mail.php" method="post" enctype="multipart/form-data">
 
				<input type="text" name="nom" placeholder="Noms" style="border: 1px solid #e2e2e2; width: 49%; padding-top: 5px; padding-right: 10px; padding-left: 10px; padding-bottom: 5px" required/>
 
				<input type="email" name="email" placeholder="E-mail" style="border: 1px solid #e2e2e2; width: 50.3%; padding-top: 5px; padding-right: 10px; padding-left: 10px; padding-bottom: 5px; color: black" required/>
 
				<input type="text" maxlength="70" placeholder="Votre profil" style="border: 1px solid #e2e2e2; width: 100%; padding-top: 5px; padding-right: 10px; padding-left: 10px; padding-bottom: 5px" required name="poste" value=""> 
 
				<textarea name="message" rows="2" cols="50" style="border: 1px solid #e2e2e2; width: 100%; padding-top: 5px; padding-right: 10px; padding-left: 10px; padding-bottom: 5px" placeholder="Un mot sur vous"></textarea>
 
				<br/>
 
                <input type="file" class="jqInputText inputText" id="fichier" name="fichier" required="true"> 
				<br>
				<small>Format autorisé : doc, rtf, docx, pdf | Taille max : 4.0 Mo</small>
 
            </div>
            <br>
                <input type="submit" class="inputfile" value="Envoyer">
 
            </div>
							</form>

Merci d'avance pour votre assistance