begin process at 2012 05 28 21:46:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Divers

 > 

formulaire html vérification php et envoi par mail avec deux pièces jointes


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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&eacute;f&eacute;rences</a>
					| <a href="coordonnees.html">Coordonn&eacute;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">&nbsp;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&eacute;posez votre CV</h2>
	<h3>Formulaire de d&eacute;pot</h3>
	<p>Les champs obligatoires sont signal&eacute;s par un ast&eacute;risque "*".</p>

	<form 
			enctype="multipart/form-data" 
			name="formu" method="post" 
			action="verif.php">
		<fieldset>
			<legend>&Eacute;tat civil</legend>
			<div class="emptyfloatdiv">
				<label class="formlabel" for="civilite">Civilit&eacute; * : </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&eacute;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&eacute;t&eacute; actuelle : </label>
				<input type="text" id="societe" name="societe" size="35" />
			</div>
			<div class="emptyfloatdiv">
				<label class="formlabel" for="poste_recherche">Poste recherch&eacute; : </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&eacute;l&eacute;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&eacute;f&eacute;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;">&nbsp;</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&#8217;ai la possibilité d&#8217;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&eacute;gales du site DIACONSEILS" >Mentions l&eacute;gales</a> &copy; 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Ã&#168;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Ã&#168;res alphabétiques
	
	if (preg_match($regex, $prenom)) {
		return true;
	}
	else {
		 echo "Le pr&eacute;nom n'est pas correct.";
			$erreur = true;
	}
}
// on verifie le format de l'adresse email
if(!empty($email)) {
$atom   = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]';   // caractÃ&#168;res autorisés avant l'arobase
	$domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)'; // caractÃ&#168;res autorisés aprÃ&#168;s l'arobase (nom de domaine)
	$regex = '/^' . $atom . '+' .   // Une ou plusieurs fois les caractÃ&#168;res autorisés avant l'arobase
	'(\.' . $atom . '+)*' .         // Suivis par zéro point ou plus séparés par des caractÃ&#168;res autorisés avant l'arobase
	'@' .                           // Suivis d'un arobase
	'(' . $domain . '{1,63}\.)+' .  // Suivis par 1 à 63 caractÃ&#168;res autorisés pour le nom de domaine séparés par des points
	$domain . '{2,63}$/i';          // Suivi de 2 à 63 caractÃ&#168;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&eacute;l&eacute;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&eacute;:' $_POST["civilite"]"\n"
				'Nom:' $_POST["nom"]"\n"
				'Pr&eacute;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&eacute;t&eacute;:' $_POST["societe"]"\n"
				'Poste recherch&eacute;:' $_POST["poste_recherche"]"\n"
				'Adresse:' $_POST["adresse"]"\n"
				'CP:' $_POST["codepostal"]"\n"
				'Ville:' $_POST["ville"]"\n"
				'Pays:' $_POST["pays"]"\n"
				'T&eacute;l&eacute;phone:' $_POST["telephone"]"\n"
				'Mobile:' $_POST["mobile"]"\n"
				'Mail:' $_POST["email"]"\n"
				'R&eacute;f&eacute;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 &eacute;t&eacute; envoy&eacute;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


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,749 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales