Bonjour à tous,
Je suis entrain de créer un formulaire en php avec plusieurs champs.
Une page envoie.php qui vérifie si tous les champs sont bien remplie et qui envoie le mail. (pour l'instant ça fonctionne)
Maintenant je voudrai avoir la possibilité d'ajouter une pièce jointe à mon mail. J'ai donc rajouté un champ supplémentaire à mon formulaire et j'ai essayé de modifier la page envoie.php sans succès. Cela fait 3jours que mes essais non rien donnés... j'ai regardé plusieurs tutos mais je n'arrive pas à l'adapter à mon code et je commence à baisser les bras. Si vous pouviez m'aider je vous en remercie d'avance (je ne suis pas super fort en php).
Voici mes pages :
formulaire.php
<label class="field prepend-icon file">
<span class="button btn-black"> Choisir une photo </span>
<input type="file" class="gui-file" name="fichier" id="fichier"
onChange="document.getElementById('fichiertelecharger').value = this.value;">
<input type="text" class="gui-input" id="fichiertelecharger" placeholder="Télécharger les photos de votre objet" readonly>
<span class="field-icon"><i class="fa fa-upload"></i></span><br></label>
envoie.php
<?php
define("WEBMASTER_EMAIL", 'test@mail.com');
error_reporting (E_ALL ^ E_NOTICE);
function ValidateEmail($emailaddress)
{
$regex = '/([a-z0-9_.-]+)'.
'@'. # at
'([a-z0-9.-]+){2,255}'.
'.'. # period
'([a-z]+){2,10}/i';
if($emailaddress == '')
return false;
else
$eregi = preg_replace($regex, '', $emailaddress);
return empty($eregi) ? true : false;
}
$post = (!empty($_POST)) ? true : false;
if($post)
{
$nom = strip_tags(trim($_POST["nom"]));
$nom = utf8_decode($nom);
$prenom = strip_tags(trim($_POST["prenom"]));
$prenom = utf8_decode($prenom);
$emailaddress = strip_tags(trim($_POST["emailaddress"]));
$emailaddress = strip_tags(trim($_POST["emailaddress"]));
$telephone = strip_tags(trim($_POST["telephone"]));
$typeobjet = strip_tags(trim($_POST["typeobjet"]));
$description = strip_tags(trim($_POST["description"]));
$description = utf8_decode($description);
$captcha = strip_tags(trim($_POST["captcha"]));
$fichier = uniqid();
$fichier_telecharger = $fichier.$_FILES['fichier']['name'];
$fichier_telecharger = fread($fichier, filesize("$fichier"));
$fichier_telecharger = chunk_split(base64_encode($fichier_telecharger));
$error = array();
//valider nom
if(isset($_POST["nom"])){
if (!$nom) {
$error[] = "Entrer votre nom";
} elseif(strlen($nom) < 2) {
$error[] = "Entrer votre nom";
}
}
//valider prenom
if(isset($_POST["prenom"])){
if (!$prenom) {
$error[] = "Entrer votre prenom";
} elseif(strlen($prenom) < 2) {
$error[] = "Entrer votre prenom";
}
}
//valider mail
if(isset($_POST["emailaddress"])){
if (!$emailaddress) {
$error[] = "Entrer votre email.";
} else if (!validEmail($emailaddress)) {
$error[] = "Entrer un email valide.";
}
}
//valider le type d'objet
if(isset($_POST["typeobjet"])){
if (!$typeobjet) {
$error[] = "Sélectionner le type de votre objet.";
}
}
//valider le fichier telecharger
if(isset($_FILES['fichier'])) {
// taille maximum :: 2MB
$maxsize = 2097152;
// Fichier attacher
if (empty($_FILES['fichier']['name'])) {
$error[] = "Ajouter une photo.";
}
// Fichier trop lourd
if ($_FILES['fichier']['size'] > $maxsize) {
$error[] = "Le fichier est trop lourd. Il dépasse les 2MB.";
}
// Format fichier
$valid_file_extensions = array(".jpg", ".jpeg", ".png");
$file_extension = strrchr($_FILES["fichier"]["name"], ".");
// Verifier le format du fichier
if (!in_array($file_extension, $valid_file_extensions)) {
$error[] = "Svp une image avec le format png ou jpg.";
}
}
//Valider le message (description)
if(isset($_POST["description"])){
if (strlen($description) < 10) {
if (!$description) {
$error[] = "Veuillez faire une déscription de votre objet.";
} else {
$error[] = "Votre messsage doit faire plus de 10 caractères.";
}
}
}
// valider captcha
if(isset($_POST["captcha"])){
if (!$captcha) {
$error[] = "Entrer le code";
} else if (($captcha) != $_SESSION['gfm_captcha']) {
$error[] = "Le code est incorrect";
}
}
if ($error) {
$errortext = "";
foreach ($error as $error) {
$errortext .= '<li>'. $error . "</li>";
}
echo '<div class="alert notification alert-error">Erreur:<br><ul>'. $errortext .'</ul></div>';
} else{
if ($_FILES['fichier']['error'] == 0) {
move_uploaded_file($_FILES['fichier']['name'], '../telechargement/' .$fichier_telecharger);
include dirname(__FILE__).'/phpmailer/PHPMailerAutoload.php';
$mail = new PHPMailer();
$mail.= isSendmail();
$mail.= ContentType = "text/html";
$mail.= AddAttachment('../telechargement/'.$fichier_telecharger);
$mail = mail(WEBMASTER_EMAIL, "Expertise : $typeobjet", $description,
"From: ".$nom." ".$prenom." => Num: ".$telephone." <".$emailaddress.">\r\n"
."Reply-To: ".$emailaddress."\r\n"
."X-Mailer: PHP/" . phpversion());
if($mail)
echo 'OK';
}
else {
echo '<div class="alert notification alert-error">Message non envoyé</div>';
}
}
}
?>
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI
Merci d'y penser dans tes prochains messages.
Afficher la suite