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
| <?php
error_reporting(E_ALL); ini_set("display_errors", 1); //Erreurs daffichage
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']);
}
//Vérifiez si lhôte de messagerie autorise \r
if(preg_match("#@(hotmail|live|msn).[a-z]{2,4}$#", $email_from))
{
$passage_ligne = "\n";
}
else
{
$passage_ligne = "\r\n";
}
$email_to = "toto@sfr.fr"; //Mail du destinataire à changer
$email_subject = "Demande prestation de Naissance"; //Sujet du mail
$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; //Ouverture de la limite
$email_message .= "Content-Type: text/plain; charset=\"utf-8\"" . $passage_ligne; //Type de contenu
$email_message .= "Content-Transfer-Encoding: 8bit" . $passage_ligne; //Codage
$email_message .= $passage_ligne .clean_string($message). $passage_ligne; //Contenu
//Attachment
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 nest pas un fichier .htaccess
if($type_fichier == "image/jpeg"
|| $type_fichier == "image/pjpeg"
|| $type_fichier == "application/pdf"){ //Jpeg ou PDF
if ($taille_fichier <= 2097152) { //Taille supérieure à 2 Mo
$tabRemplacement = array("é"=>"e", "è"=>"e", "à"=>"a"); //Modification des caractères spéciaux
$handle = fopen($source, 'r'); //Ouverture de fichier
$content = fread($handle, $taille_fichier); //Lecture de fichiers
$encoded_content = chunk_split(base64_encode($content)); //Codage
$f = fclose($handle); //Fermeture de fichier
$email_message .= $passage_ligne . "--" . $boundary . $passage_ligne; //Deuxième ouverture de la frontière
$email_message .= 'Content-type:'.$type_fichier.';name="'.$nom_fichier.'"'."\n"; //Type de contenu (application/pdf ou image/jpeg)
$email_message .='Content-Disposition: attachment; filename="'.$nom_fichier.'"'."\n"; //Informer quil y a une pièce jointe
$email_message .= 'Content-transfer-encoding:base64'."\n"; //Codage
$email_message .= "\n"; //Ligne vide. IMPORTANT!
$email_message .= $encoded_content."\n"; //Attachment
}else{
//Message derreur pour 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 à 2Mo.". $passage_ligne;
}
}else{
//Message derreur pour un 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 derreur pour lenvoi dun 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; //Fermer boundary
if(mail($email_to,$email_subject, $email_message, $headers)==true){ //Envoi de courrier
header('Location: index.html#contact'); //Redirection
}
?> |
Partager