2 pièce(s) jointe(s)
Envoyer un mail avec plusieures pieces jointes <input type="file" name="attachment" data-input="true" multiple
Bonjour,
J'ai 16 ans et j'apprends à coder en php depuis 6 mois.
En bidouillant plusieurs codes, j'arrive à envoyer un mail avec un seul attachment.
Mais quand j'en met plusieurs avec <input type="file" name="attachment" data-input="true" multiple>, je reçois toujours le premier.
J'essaie d'ajouter un foreach dans mons script PHP du mailhandler pour les récupérer mais ça bug.
Je bloque
Si quelqu'un pouvait m'aider. Merci bcp
Michel
le lien: http://www.everybodyisadj.be/testphp/cv.html
j'ai mis aussi les fichier attachés, cv.html, mailhandler.php
Code:
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
| <form id="contact-form" class='contact-form'>
<div class="contact-form-loader"></div>
<fieldset>
<label class="name">
<input type="text" name="name" placeholder="Nom" value=""
data-constraints="@Required @JustLetters"/>
<span class="empty-message">*Ce champ est requis.</span>
<span class="error-message">*Ce nom n'est pas valide</span>
</label>
<label class="email">
<input type="text" name="email" placeholder="Email" value=""
data-constraints="@Required @Email"/>
<span class="empty-message">*Ce champ est requis.</span>
<span class="error-message">*Cet email n'est pas valide.</span>
</label>
<label class="phone">
<input type="text" name="phone" placeholder="Téléphone" value=""
data-constraints="@JustNumbers"/>
<span class="empty-message">*Ce champ est requis.</span>
<span class="error-message">*Ce téléphone n'est pas valide.</span>
</label>
<label class="message">
<textarea name="message" placeholder="Votre Message"
data-constraints='@Required @Length(min=20,max=999999)'></textarea>
<span class="empty-message">*Ce champ est requis.</span>
<span class="error-message">*Le message est trop court.</span>
</label>
<labe1> Votre CV (doc, docx, txt, pdf, zip, rar)</labe1>
<label class="message">
<input type="file" name="attachment" data-input="true" multiple>
<span class="empty-message">*Ce champ est requis.</span>
</label>
<!--<label1> Votre lettre de motivation </label1>
<label class="message">
<input type="file" name="attachment" data-input="true" mutiple="multiple">
<span class="empty-message">*Ce champ est requis.</span>
</label>
<label1> Autre document </label1>
<label class="message">
<input type="file" name="attachment" data-input="true" >
<span class="empty-message">*Ce champ est requis.</span>
</label>-->
<div class="btn-wr">
<a class="btn" href="#" data-type="submit">Envoyer</a>
</div>
</fieldset>
<div class="modal fade response-message">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"
aria-hidden="true">
×
</button>
<h4 class="modal-title">Modal title</h4>
</div>
<div class="modal-body">
Votre message nous as bien été envoyé! Nous vous recontacterons dans les plus brefs délais.
</div>
</div>
</div>
</div>
</form> |
MAILHANDLER:
Code:
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
| if(isset($_POST['name']) and $_POST['name'] != ''){$message_body .= '<p>Visiteur: ' . $_POST['name'] . '</p>' . "\n" . '<br>' . "\n"; $subject.=$_POST['name'];}
if(isset($_POST['email']) and $_POST['email'] != ''){$message_body .= '<p>Email: ' . $_POST['email'] . '</p>' . "\n" . '<br>' . "\n"; $user_email=$_POST['email'];}
if(isset($_POST['state']) and $_POST['state'] != ''){$message_body .= '<p>Ville: ' . $_POST['state'] . '</p>' . "\n" . '<br>' . "\n";}
if(isset($_POST['phone']) and $_POST['phone'] != ''){$message_body .= '<p>Téléphone: ' . $_POST['phone'] . '</p>' . "\n" . '<br>' . "\n";}
if(isset($_POST['fax']) and $_POST['fax'] != ''){$message_body .= '<p>Fax: ' . $_POST['fax'] . '</p>' . "\n" . '<br>' . "\n";}
if(isset($_POST['message']) and $_POST['message'] != ''){$message_body .= '<p>Message: ' . $_POST['message'] . '</p>' . "\n";}
if(isset($_POST['stripHTML']) and $_POST['stripHTML']=='true'){$message_body = strip_tags($message_body);$message_type='text';}
try{
include "libmail.php";
$m= new Mail("utf-8");
$m->From($user_email);
$m->To($owner_email);
$m->Subject($subject);
$m->Body($message_body,$message_type);
//$m->log_on(true);
if(isset($_FILES['attachment'])){
//CA BUG AVEC CETTE LIGNE
//foreach ($_FILES'attachment']) {
if($_FILES['attachment']['size']>$max_file_size){
$error_text=$error_text_filesize . ' ' . $max_file_size . 'bytes';
die($error_text);
}else{
if(preg_match($file_types,$_FILES['attachment']['name'])){
$m->Attach($_FILES['attachment']['tmp_name'],$_FILES['attachment']['name'],'','attachment');
}else{
$error_text=$error_text_filetype;
die($error_text);
}
}
//}
}
if(!$use_smtp){
$m->smtp_on( $host, $username, $password, $port);
}
if($m->Send()){
die('success');
}
}catch(Exception $mail){
die($mail);
} |
Multi-sélection dans un formulaire avec la touche CTRL
Merci Mathieu pour ta réponse.
Mais ta solution est possible en créant un champ par attachment dans mon formulaire.
Mais ce que je cherche à faire c'est un seul champ attachment avec une multi-sélection via la touche CTRL me permettant de sélectionner plusieurs pièces jointes et les récupérer pour les insérer ds le mail.
C'est pour cette raison que j'ai essayé un foreach qui coince.
Une idée?
D'avance, merci
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| if(isset($_FILES['attachment'])){
//CA BUG AVEC CETTE LIGNE
//foreach ($_FILES'attachment']) {
if($_FILES['attachment']['size']>$max_file_size){
$error_text=$error_text_filesize . ' ' . $max_file_size . 'bytes';
die($error_text);
}else{
if(preg_match($file_types,$_FILES['attachment']['name'])){
$m->Attach($_FILES['attachment']['tmp_name'],$_FILES['attachment']['name'],'','attachment');
}else{
$error_text=$error_text_filetype;
die($error_text);
}
}
//}
} |