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
|
if (isset($_POST['valider'])) {
/* upload */
$dossier = 'upload/';
$fichier = basename($_FILES['piece']['name']);
$taille_maxi = $_POST['MAX_FILE_SIZE'];
$taille = filesize($_FILES['piece']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg','doc','xls','ppt','txt');
$extension = strrchr($_FILES['piece']['name'], '.');
//Début des vérifications de sécurité...
if((isset($_POST['piece']))&&(!in_array($extension, $extensions))) //Si l'extension n'est pas dans le tableau
{ // test à faire que s'il y a une pièce jointe
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt xls, ppt ou doc...';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
//------------- lecture des différents champs du formulaire
if (isset($_POST['mail'])) {
$mailemetteur=$_POST['mail'];
}
if (isset($_POST['nom'])) {
$nom=$_POST['nom'];
}
if (isset($_POST['prenom'])) {
$prenom=$_POST['prenom'];
}
// valider l'adresse email
$atom = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]'; // caractères autorisés avant l'arobase
$domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)'; // caractères autorisés après l'arobase (nom de domaine)
$regex = '/^' . $atom . '+' . // Une ou plusieurs fois les caractères autorisés avant l'arobase
'(\.' . $atom . '+)*' . // Suivis par zéro point ou plus
// séparés par des caractères autorisés avant l'arobase
'@' . // Suivis d'un arobase
'(' . $domain . '{1,63}\.)+' . // Suivis par 1 à 63 caractères autorisés pour le nom de domaine
// séparés par des points
$domain . '{2,63}$/i'; // Suivi de 2 à 63 caractères autorisés pour le nom de domaine
// test de l'adresse e-mail
if (!preg_match($regex, $mailemetteur)) $erreur= "L'adresse e-mail $mailemetteur n'est pas valide";
//fin validation adresse mail
$cond=(!isset($_POST['mail']))||(!isset($_POST['nom']))||(!isset($_POST['prenom']))||(!isset($_FILES['piece']['name']))||($_FILES['piece']['name']=="");
$sortie=($cond)? 1 : 0;
if ($sortie==1) echo "tous les champs sont obligatoires<br/>";
if((!($sortie))&&(!isset($erreur))) //S'il n'y a pas d'erreur et que tous les champs sont remplis, on uploade
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['piece']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
/* envoi du mail apres upload avec phpmailer */
require("phpmailer/class.phpmailer.php");
$mail = new PHPMailer($mail); /*j'ai modifié la classe où j'ai créé un constructeur qui permet de passer en paramètre le nom de l'émetteur (et ça, ça marche) */
$destinataire=["---@yahoo.fr","---@aol.com"];
foreach($destinataire as $dest) {
$mail->AddAddress($dest);
$mail->SetLanguage("en",'phpmailer/language/');
$mail->From = $mailemetteur;
$mail->AddAttachment($dossier.$fichier);
$mail->Subject = "test";
// construction msg
//-------------------
$msg ="Message envoyé par ".$prenom." ".$nom;
$msg = htmlentities($msg,ENT_NOQUOTES,'UTF-8',false);
$msg = str_replace(array('<','>'),array('<','>'), $msg);
$msg = str_replace(array('&lt;','&gt'),array('<','>'), $msg);
//fin construction msg
//------------------------
$mail->CharSet = 'UTF-8';
$mail->ContentType ='text/html';
$mail->FromName=$mail;
$mail->Body = $msg;
if(!$mail->Send()) {
echo 'Message was not sent.';
echo 'Mailer error: ' . $mail->ErrorInfo;
}
} //fin gestion multi-destinataires
/* fin envoi mail */
}
/* effacer le fichier (y en a qu'un) */
unlink($dossier . $fichier);
}
else //Sinon (la fonction renvoie FALSE).
{
if (isset($_POST['piece'])) echo 'Echec de l\'upload !';
}
} |
Partager