Accueil > Forum > > > > formulaire html vérification php et envoi par mail avec deux pièces jointes
formulaire html vérification php et envoi par mail avec deux pièces jointes
samedi 28 août 2010 à 16:46:52 |
formulaire html vérification php et envoi par mail avec deux pièces jointes

maxparo
|
Bonjour,
j'ai un problème pour envoyer un mail avec deux pièces jointes à partir d'un formulaire. Je n'ai pas l'habitude du php et on m'a demandé d'adapter un formulaire fait avec dreamweaver. j'ai un peu fouillé sur internet et repris des codes sur codes_sources mais à l'heure actuelle mon script php au lieu de vérifier les champs et d'envoyer un mail, ouvre une page dans la fenêtre courante qui affiche le script. Si quelqu'un peut m'aider....
le formulaire:
Code HTML :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr-FR" lang="fr-FR">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="Author" content="Diaconseils" />
<meta name="Description" content="Diacoseils : De l'organisation au recrutement en passant par l'évaluation, notre équipe de consultants réunit des compétences et des expériences complémentaires afin de vous offrir un service optimal dans tous les secteurs et sur des fonctions variées. " />
<meta name="Keywords" lang="fr" content="Diaconseils, Annonce, Cabinet, Candidature, Commercial, Conseil, Consultant, CV, Direction, Emploi, Evaluation, Finance, Humaine, Ingénieur, Lyon, Offre, Organisation, Paris, Recrutement, Ressource, RH" />
<title>Diaconseils - Recrutement</title>
<link rel="stylesheet" type="text/css" href="index.css"/>
<script type="text/javascript" src="function.js"></script>
<!-- Scripts ============================================================ -->
<!-- Complements ======================================================== -->
</head>
<body><embed src="kong.mp3" autostart="true" width="70" height="24" loop="true">
<div id="conteneur">
<!-- Header section -->
<div id="header">
<div id="header_logo">
<h1><a href="http://www.diaconseils.fr" title="Kenseo Ressources Humaines - Accueil"><img src="logo.gif" alt="Diaconseils - Accueil" width="215" height="80" /></a><a href="http://www.kenseo.fr" title="Kenseo Ressources Humaines - Accueil"></a></h1>
</div>
<div id="header_top">
<div id="header_topimg">
<p><img src="header.gif" alt="" width="760" height="40" /></p><!-- <img src="http://www.kenseo.fr/kenseo-images/kenseo-bandeau-01.jpg" alt="" /> -->
</div>
<div id="header_nav">
<p>
<a href="engagements.html">Engagements</a>
| <a href="references.html">Références</a>
| <a href="coordonnees.html">Coordonnées</a>
| <a href="candidat.html">Espace Candidat</a>
</p>
</div>
</div>
</div>
<!-- Header section End -->
<div class="clearbox"></div>
<!-- Data section Start -->
<div id="datasec" >
<div id="datasec_menu">
<div id="datasec_menu_client">
<br /><br />
<ul class="ulcontainer">
<br /><br /><li class="limenuleft_a"><a href="recrutement.html" class="navigation" title="Nos solutions pour vos recrutements">RECRUTEMENT<br /><br /><br /><br />
</a></li>
</ul>
<br /><br /><br />
<ul class="ulcontainer">
<li class="limenuleft_b"><a href="formation.html" class="navigation" title="Nos solutions pour votre formation">FORMATION<br /><br /></a></li>
</ul>
<br /><br /><br /><br />
<ul class="ulcontainer">
<li class="limenuleft_b"><a href="conseil.html" class="navigation" title="Nos solutions pour votre management"> CONSEIL<br /><br /></a></li>
</ul>
<br /><br /><br /><br />
</div> </div>
<div id="datasec_content">
<div id="datasec_rightcol"><img src="picture_5.jpg" style="margin-bottom:5px;" alt="" />
<br />
</div>
<div id="datasec_corpus">
<h2>Déposez votre CV</h2>
<h3>Formulaire de dépot</h3>
<p>Les champs obligatoires sont signalés par un astérisque "*".</p>
<form
enctype="multipart/form-data"
name="formu" method="post"
action="verif.php">
<fieldset>
<legend>État civil</legend>
<div class="emptyfloatdiv">
<label class="formlabel" for="civilite">Civilité * : </label>
<select id='civilite' name='civilite'>
<option value="Madame">Madame</option>
<option value="Mademoiselle">Mademoiselle</option>
<option value="Monsieur">Monsieur</option>
</select>
</div>
<div class="emptyfloatdiv">
<label class="formlabel" for="nom">Nom * : </label>
<input type="text" id="nom" name="nom" size="35" value=""/>
</div>
<div class="emptyfloatdiv">
<label class="formlabel" for="prenom">Prénom * : </label>
<input type="text" id="prenom" name="prenom" size="35" value=""/>
</div>
<div class="emptyfloatdiv">
<label class="formlabel" for="date_de_naissance">Date de naissance : </label>
<input type="text" id="date_de_naissance" name="date_de_naissance" size="35" />
</div>
<div class="emptyfloatdiv">
<label class="formlabel" for="lieu_de_naissance">Lieu de naissance : </label>
<input type="text" id="lieu_de_naissance" name="lieu_de_naissance" size="35" />
</div>
<div class="emptyfloatdiv">
<label class="formlabel" for="age">Âge : </label>
<input type="text" id="age" name="date_de_naissance" size="35" />
</div>
</fieldset>
<fieldset>
<legend>Information</legend>
<div class="emptyfloatdiv">
<label class="formlabel" for="profession">Profession actuelle : </label>
<input type="text" id="profession" name="profession" size="35" />
</div>
<div class="emptyfloatdiv">
<label class="formlabel" for="societe">Société actuelle : </label>
<input type="text" id="societe" name="societe" size="35" />
</div>
<div class="emptyfloatdiv">
<label class="formlabel" for="poste_recherche">Poste recherché : </label>
<input type="text" id="poste_recherche" name="poste_recherche" size="35" />
</div>
<div class="emptyfloatdiv">
<label class="formlabel" for="adresse">Adresse : </label>
<input type="text" id="adresse" name="adresse" size="35" />
</div>
<div class="emptyfloatdiv">
<label class="formlabel" for="codepostal">Code postal : </label>
<input type="text" id="codepostal" name="codepostal" size="35" />
</div>
<div class="emptyfloatdiv">
<label class="formlabel" for="ville">Ville : </label>
<input type="text" id="ville" name="ville" size="35" />
</div>
<div class="emptyfloatdiv">
<label class="formlabel" for="pays">Pays : </label>
<input type="text" id="pays" name="pays" size="35" />
</div>
<div class="emptyfloatdiv">
<label class="formlabel" for="tel">Téléphone * : </label>
<input type="text" id="telephone" name="tel" size="23" value=""/>
</div>
<div class="emptyfloatdiv">
<label class="formlabel" for="mobile">Portable : </label>
<input type="text" id="mobile" name="mobile" size="23" />
</div>
<div class="emptyfloatdiv">
<label class="formlabel" for="email">E-mail * : </label>
<input type="text" id="email" name="email" size="35" value=""/>
</div>
</fieldset>
<fieldset>
<div class="emptyfloatdiv">
<label class="formlabel" for="reference">Référence offre : </label>
<input type="text" id="reference" name="reference" size="8" />
</div>
<legend>Message</legend>
<div class="emptyfloatdiv">
<label class="formlabel" for="message">Message : </label>
<textarea id="message" name="message" cols="35" rows="5"></textarea>
</div>
<div class="emptyfloatdiv">
<label class="formlabel" for="file1">Joindre votre CV * : </label>
<input type="file" name="attachment[]" id="file1" value=""/>
</div>
<div class="emptyfloatdiv">
<label class="formlabel" for="file2">Lettre de motivation : </label>
<input type="file" name="attachment[]" id="file2" value=""/>
</div>
</fieldset>
<fieldset>
<legend>Soumettre</legend>
<div class="emptyfloatdiv">
<label class="formlabel" for="submitform">Envoyer votre CV : </label>
<input type="hidden" name="configfilename" value="kenseo_depot" />
<input type="submit" id="submitform" name="Submit" value="Envoyer" />
</div>
</fieldset>
</form>
<p style="font-size:0.8em;font-style:italic;"> </p>
<p style="font-size:0.8em;font-style:italic;">Tous les renseignements fournis sont confidentiels et ne pourront en aucun cas être communiqués à des tiers, sans mon accord préalable. En conformité avec les dispositions de la Loi 78-17 « Informatique, fichiers et libertés », j’ai la possibilité d’accéder à ces informations et de les modifier si je le juge opportun.
</p>
</div> </div>
</div>
<!-- Data section End -->
<div class="clearbox"></div>
<!-- Footer Start -->
<div id="footersection">
<img src="http://www.kenseo.fr/kenseo-images/square-orange.gif" alt=" - " /><a href="plan-du-ite.html" title="Plan du site Kenseo" >Plan du site</a>
<img src="http://www.kenseo.fr/kenseo-images/square-anis.gif" alt=" - " /><a href="mentions_legales.html" title="Mentions légales du site DIACONSEILS" >Mentions légales</a> © DIACONSEILS 2010
<img src="http://www.kenseo.fr/kenseo-images/square-red.gif" alt=" - " /><a href="partenaires.html" title="Partenaires Kenseo" >Partenaires</a>
</div>
<!-- Footer End -->
</div>
<!-- ********************************************************************* -->
<!-- Google Analytics -->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-7278846-1");
pageTracker._trackPageview();
} catch(err) {}</script>
<!-- ********************************************************************* -->
<!-- ********************************************************************* -->
<!-- ********************************************************************* -->
</body>
</html>
le script:
Code PHP : <?php
// recupération des valeurs du formulaire
$nom = $_POST["nom"];
$prenom = $_POST["prenom"];
$email = $_POST["email"];
$telephone = $_POST["telephone"];
$file1 = $_POST["file1"];
$file2 = $_POST["file2"];
// on verifie que le nom n'est pas vide avant de lancer la verification qui implique des requetes SQL
if(!empty($nom)) {
$regex = "^[:alpha:]+$" // caractères alphabétiques
if (preg_match($regex, $nom)) {
return true;
}
else {
echo "Le nom n'est pas correct.";
$erreur = true;
}
}
// on verifie que le password n'est pas vide
if(!empty($prenom)) {
$regex = "^[:alpha:]+$" // caractères alphabétiques
if (preg_match($regex, $prenom)) {
return true;
}
else {
echo "Le prénom n'est pas correct.";
$erreur = true;
}
}
// on verifie le format de l'adresse email
if(!empty($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, $email)) {
return true;
}
else {
echo "L'adresse email n'est pas correcte.";
$erreur = true;
}
}
// on verifie le format du code postal
if(!empty($telephone)) {
$ereg = '(0[0-9]{9})'; // format de telephone
// test du telephone
if (ereg($regex, $email)) {
return true;
}
else {
echo "Le téléphone n'est pas correct.";
$erreur = true;
}
}
// on vérifie les fichiers
if(!empty($file1)) if ($file1['file1']['size'] <= 1000000)
{
// Testons si l'extension est autorisée
$infosfichier = pathinfo($file1['file1']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('pdf', 'doc');
if (in_array($extension_upload, $extensions_autorisees))
{
return true;
}
else {
echo "Le fichier est trop volumineux(1mo max) ou le format n'est pas correct(pdf, doc).";
$erreur = true;
}
}
else{
return false;
}
if(!empty($file2))if ($file2['file2']['size'] <= 1000000)
{
// Testons si l'extension est autorisée
$infosfichier = pathinfo($file2['file2']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('pdf', 'doc', 'docx', 'txt');
if (in_array($extension_upload, $extensions_autorisees))
{
return true;
}
else {
echo "Le fichier est trop volumineux(1mo max) ou le format n'est pas correct(pdf, doc).";
$erreur = true;
}
}
else{
return false;
}
}
if(!$erreur) {
//permet de définir les différentes parties du mail
$limite = "----=_Part_" . md5( uniqid ( rand() ) );
//headers du mail
$mail_mime = "MIME-Version: 1.0\r\n";
$mail_mime .= "Content-Type: multipart/mixed;
boundary=\"".$limite."\"\r\n";
//le corps du message(html)
//$texte_mail correspond au message au format html <html><head>.....</html>
//défini la première partie du mail
$texte .= "--".$limite."\n";
$texte .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$texte .= "Content-Transfer-Encoding: quoted-printable\n ";
$texte .= "Content-Disposition: inline \n\n ";
$texte .= 'Civilité:' $_POST["civilite"]"\n"
'Nom:' $_POST["nom"]"\n"
'Prénom:' $_POST["prenom"]"\n"
'Date de naissance:' $_POST["date_de_naissance"]"\n"
'Lieu de naissance:' $_POST["lieu_de_naissance"]"\n"
'Age:' $_POST["age"]"\n"
'Profession:' $_POST["profession"]"\n"
'Société:' $_POST["societe"]"\n"
'Poste recherché:' $_POST["poste_recherche"]"\n"
'Adresse:' $_POST["adresse"]"\n"
'CP:' $_POST["codepostal"]"\n"
'Ville:' $_POST["ville"]"\n"
'Pays:' $_POST["pays"]"\n"
'Téléphone:' $_POST["telephone"]"\n"
'Mobile:' $_POST["mobile"]"\n"
'Mail:' $_POST["email"]"\n"
'Référence de l\'offre:' $_POST["reference"]"\n"
'Message:' $_POST["message"]"\n";
$texte .= "\n\n";
$texte .= "\n\n";
//indice de boucle permettant d'ajouter tous les fichiers joints
$i=0;
//les fichiers joints a attacher
$attachement = '';
//Boucle permettant l'ajout de toutes les pieces jointes
while($i < sizeof($liste_fichier))
{
//permet de récupérer l'extension du fichier afin de définir le type mime
$longeur = strlen ($liste_fichier[$i]);
$longeur -=3;
if(substr($liste_fichier[$i],$longeur) == "doc")
{
$type = "application/msword";
}
else
$type = "application/pdf";
//on Ajout chaque parties suivantes du mail avec les pieces jointes
$attachement .= "--".$limite."\n";
$attachement .= "Content-Type: ".$type." name=".$liste_fichier[$i]."\n";
$attachement .= "Content-Transfer-Encoding: base64\n";
$attachement .= "Content-Disposition: attachment; filename=".$liste_fichier[$i]."\n\n";
//On lit le fichier présent sur le serveur
//"rb" permet de lire des fichiers en mode binaire (utile sous windows)
$fd = fopen( $liste_fichier[$i], "rb" );
$contenu = fread( $fd, filesize( $liste_fichier[$i] ) );
//encodage en base64 pour que le fichier soit lisible
$attachement .= chunk_split(base64_encode($contenu));
$i++;
}
//on ferme ensuite toutes les parties du mail
$attachement .= "\n\n--".$limite."--\n\n";
if ( mail(monadresse@hotmail.fr,candidature,$texte.$attachement,$mail_mime) )
{
//on affiche un message indiquant l'envoi du message
echo '<p align="left"><font color="green"face="Arial, Helvetica, sans-serif">Votre candidature a été envoyée.</font></p>';
}
else
{
//on affiche un message indiquant l'echec de l'envoi du message
echo '<p align="left"><font color="red" face="Arial, Helvetica, sans-serif"> Echec de l\'envoi de la demande</font></p>';
}
}
?>
|
|
Cette discussion est classée dans : mail, texte, formulaire, post, naissance
Répondre à ce message
Sujets en rapport avec ce message
Formulaire PHP - Bonne reception du e-mail mais sans le contenu (vide) [ par adriendk ]
Bonjour, alors j'ai un gros probème ca fait une semaine que je cherche l'erreur de mon formulaire dont la reception du mail est VIDE. Cela dis je reço
formulaire php [ par ainfographie ]
Bonjour à tous, je viens vers vous car je désespère. J'ai créé un formulaire de contact, pour mon site, j'aimerais recevoir les infos dans ma boîte ma
formulaire php [ par mmemoagnon ]
Bonjour, Je débute. J'ai créé un site mais j'ai un bug avec le formulaire. Lorsqu'on le rempli j'ai ensuite ce message : "Not Found The requested
formulaire dans dreamweaver [ par mmemoagnon ]
bonjour je viens de créer mon premier site et j'ai un bug avec le formulaire. Lorsque l'on appuie sur le bouton envoyer il m'affiche ça : Not Found
Formulaire et envoi de mail [ par Becca ]
Bonjour, j'ai un petit problème avec le formulaire. En fait quand les personnes remplissent le formulaire je voudrais recevoir par mail leur réponse.
récupération de variable. ca marche sauf pour une [ par scoder ]
bonjour, je suis dans un cas de figure assez particulier puisque j'ai un formulaire dont je récupère les variables, jusque là ok. Là où ça cloche c'es
formater le texte d'un formulaire envoyer par mail depuis un source flash, [ par nykos2004 ]
Nykos
Formulaire envoyer par e-mail [ par maxetime ]
Salut,j'ai un probleme avec l'envoie d'un formulaire apr e-mail.Voici l'erreur que sa me donne :Parse error: parse error, unexpected T_STRING in c:\in
Pb, Formulaire / Mail [ par MaSenCo ]
Bonjour,Je viens de mettre un formulaire / mail sur mon site, et j'ai un petit problème avec la fonction mail, c'est à dire que je reçois bien le mail
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
XML ET PHPXML ET PHP par karouani
Cliquez pour lire la suite par karouani
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|