Envois pièce jointe

Bonjour à tous !

J'ai beau cherché, j'ai beau fouillé, je ne trouve pas la solution et je suis vraiment coincé...
J'essaie d'envoyer un mail avec pièce jointe.
Ce code m'envois le mail, m'envois 1 piècej ointe (sur 2) et sans message, seulement un noname d'1Ko

Pouvez-vous m'aider svp ?

<?php
if(isset($_POST['submit'])){$erreur="";

// Nettoyage des entrées
while(list($var,$val)=each($_POST)){if(!is_array($val)){$$var=strip_tags($val);}else{while(list($arvar,$arval)=each($val)){$$var[$arvar]=strip_tags($arval);}}}

// Formatage des entrées
$f_Nom=trim(ucwords(preg_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_Nom)));
$f_Email=trim(ucwords(preg_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_Email)));

// Verification des champs
if(strlen($f_Nom)<2) {$erreur.="<li>".$REC_ErrNom; $errf_Nom=1;}
if(strlen($f_Email)<2) {$erreur.="<li>".$REC_ErrEmail1; $errf_Email=1; }
else{if(!preg_match('/^[^@]{1,64}@[^@]{1,255}$/', $f_Email)) {$erreur.="<li>".$REC_ErrEmail2; $errf_Email=1;}}
if($_FILES['f_Curriculum']['error'] == UPLOAD_ERR_NO_FILE) {$erreur.="<li>".$REC_ErrCurriculum; $errf_Curriculum=1;}
if($_FILES['f_Motivation']['error'] == UPLOAD_ERR_NO_FILE) {$erreur.="<li>".$REC_ErrMotivation; $errf_Motivation=1;}

if($erreur==""){

$titre=$REC_PostulerOffre.': '.$f_Reference;
$tete="From:".$f_Email."\n";
$tete.= 'MIME-Version: 1.0'."\n";
$tete.='Content-Type: multipart/mixed; charset="UTF-8"'."\n";
$tete.='Content-Transfer-Encoding: 8bit';

if($_POST['submit'] != ''){
switch(strrchr(basename($_POST['submit']), ".")){
case ".pdf": $ctype = "application/pdf"; break;
case ".png": $ctype = "image/png"; break;
case ".gif": $ctype = "image/gif"; break;
case ".jpg": $ctype = "image/jpeg"; break;
case ".txt": $ctype = "text/plain"; break;
default: $ctype = "application/octet-stream"; break;
}

$tete.= 'Content-Type: '.$ctype.'; name="'.$_POST['submit'].'"'."\n";
$tete.= 'Content-Transfer-Encoding: base64'."\n";
$tete.= 'Content-Disposition:attachement; filename="'.$_POST['submit'].'"'."\n\n";
$tete.= chunk_split(base64_encode(file_get_contents($_POST['submit'])))."\n"; 

// Création du message
$corps.=$REC_Nom.": ".$f_Nom."\n";
$corps.=$REC_Email.": ".$f_Email."\n";
$corps.=$REC_Curriculum.": ".$f_Curriculum."\n";
$corps.=$REC_Motivation.": ".$f_Motivation."\n";
if(mail("monmail@gmail.com", $titre, stripslashes($corps), $tete)){
$ok_mail="true";}else{$erreur.="<div class='DivError TexteError'><li>".$CAS_ErreurEnvois2."</div>";}}}
}
?>

10 réponses

  1. Oui, je penses... enfin, quand on dit :
    $titre=$REC_OffreEmploi;
    
    $tete="From:".$f_Email."\n";
    $tete.='MIME-Version: 1.0'."\n";
    $tete.='Content-Type: multipart/mixed; boundary="'.$frontiere.'"'."\n";
    
    $tete.= '--'.$frontiere."\n";
    $tete.= "Content-type: ".$attach_type1."; name=".$upload_file1."\n";      
    $tete.= "Content-Length:".filesize($upload_file1)."\n";     
    $tete.= "Content-transfer-Encoding: BASE64\n";
    $tete.= "Content-disposition: attachment; filename=".$upload_file1."\n\n";
    $tete.= $encoded_attach1."\n";
    $tete.= '--'.$frontiere."\n";
    $tete.= "Content-type: ".$attach_type2."; name=".$$upload_file2."\n";  
    $tete.= "Content-Length:".filesize($upload_file2)."\n";    
    $tete.= "Content-transfer-Encoding: BASE64\n";
    $tete.= "Content-disposition: attachment; filename=".$upload_file2."\n\n";
    $tete.= $encoded_attach2."\n";
    $tete.= '--'.$frontiere."\n";
    
    // Création du message
    $corps="<div style='font-family:Courier New'>";
    $corps.=$CONTACT_NOMPRENOM.		$Espace06." : ".$f_Nom."\n";
    $corps.=$CONTACT_EMAIL.			$Espace07." : ".$f_Email."\n\n";
    $corps.=$REC_Curriculum.		$Espace04." : ".$upload_file1."\n";
    $corps.=$REC_Motivation.		$Espace00." : ".$upload_file2."\n</div>";


    Rien que le
    $tete.='Content-Type: multipart/mixed; boundary="'.$frontiere.'"'."\n";

    devait normalement le faire afficher !
    Sans la frontière, je le reçois en html, mais lorsque je le met au boundary (frontière), j'ai ce problème...
    1. Mets quand même le <doctype> et tout ce qui suit (<html>,<head> etc...). Même pour un mail il faut le mettre puisque ca reste du HTML

      Après, je ne saurais t'aider plus
  2. J'ai réussiiiiiiiiiiiiiiiiiiiiiiii !!!!!!!!!!!!!!!!!!
    Wouuuuuuuuuuuhouuuuuuuuuuuuuu !!!!

    Il existe une légère petite erreur, le corps du mail n'est pas au format html...
    Biensûre le code a besoin de se "nettoyer" mais si déjà je peux avoir une petite aide sur le html :$

    <?php
    if(isset($_POST['submit'])){$erreur="";
    
    // Nettoyage des entrées
    while(list($var,$val)=each($_POST)){if(!is_array($val)){$$var=strip_tags($val);}
    else{while(list($arvar,$arval)=each($val)){$$var[$arvar]=strip_tags($arval);}}}
    
    // Formatage des entrées
    $f_Nom=trim(ucwords(preg_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_Nom)));
    $f_Email=trim(ucwords(preg_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_Email)));
    
    // Verification des champs
    if(strlen($f_Nom)<2) {$erreur.="<li>".$REC_ErrNom; $errf_Nom=1;}
    if(strlen($f_Email)<2) {$erreur.="<li>".$REC_ErrEmail1; $errf_Email=1; }
    else{if(!preg_match('/^[^@]{1,64}@[^@]{1,255}$/', $f_Email)) {$erreur.="<li>".$REC_ErrEmail2; $errf_Email=1;}}
    if($_FILES['f_Curriculum']['error'] == UPLOAD_ERR_NO_FILE) {$erreur.="<li>".$REC_ErrCurriculum; $errf_Curriculum=1;}
    if($_FILES['f_Motivation']['error'] == UPLOAD_ERR_NO_FILE) {$erreur.="<li>".$REC_ErrMotivation; $errf_Motivation=1;}
    
    
    if($erreur==""){
    
    $upload_file1 = $_FILES['f_Curriculum']['name'];
    $upload_file2 = $_FILES['f_Motivation']['name'];
    
    
    if (move_uploaded_file($_FILES['f_Curriculum']['tmp_name'], $upload_file1)) {
    	$ext1 = explode(".", basename($_FILES['f_Curriculum']['name']));
    switch($ext1[1]) {default: $attach_type1 = "application/octet-stream"; break;
    case "gz": $attach_type1 = "application/x-gzip"; break;
    case "tgz": $attach_type1 = "application/x-gzip"; break;
    case "zip": $attach_type1 = "application/zip"; break;
    case "pdf": $attach_type1 = "application/pdf"; break;
    case "png": $attach_type1 = "image/png"; break;
    case "gif": $attach_type1 = "image/gif"; break;
    case "jpg": case"jpeg": $attach_type1 = "image/jpeg"; break;
    case "txt": $attach_type1 = "text/plain"; break;
    case "htm": $attach_type1 = "text/html"; break;
    case "html": $attach_type1 = "text/html"; break;}
    
    if (move_uploaded_file($_FILES['f_Motivation']['tmp_name'], $upload_file2)) {
    	$ext2 = explode(".", basename($_FILES['f_Motivation']['name']));
    switch($ext2[1]) {default: $attach_type2 = "application/octet-stream"; break;
    case "gz": $attach_type2 = "application/x-gzip"; break;
    case "tgz": $attach_type2 = "application/x-gzip"; break;
    case "zip": $attach_type2 = "application/zip"; break;
    case "pdf": $attach_type2 = "application/pdf"; break;
    case "png": $attach_type2 = "image/png"; break;
    case "gif": $attach_type2 = "image/gif"; break;
    case "jpg": case"jpeg": $attach_type2 = "image/jpeg"; break;
    case "txt": $attach_type2 = "text/plain"; break;
    case "htm": $attach_type2 = "text/html"; break;
    case "html": $attach_type2 = "text/html"; break;}
    
    
    if(file_exists($upload_file1)) {
    $file1 = fopen($upload_file1, "r");
    $contents1 = fread($file1, filesize($upload_file1));
    $encoded_attach1 = chunk_split(base64_encode($contents1));
    fclose($file1);}
    
    if(file_exists($upload_file2)) {
    $file2 = fopen($upload_file2, "r");
    $contents2 = fread($file2, filesize($upload_file2));
    $encoded_attach2 = chunk_split(base64_encode($contents2));
    fclose($file2);}
    
    
    $frontiere = '-----=' . md5(uniqid(mt_rand()));
    
    $titre=$REC_OffreEmploi;
    
    $tete="From:".$f_Email."\n";
    $tete.='MIME-Version: 1.0'."\n";
    $tete.='Content-Type: multipart/mixed; boundary="'.$frontiere.'"'."\n";
    
    $tete.= '--'.$frontiere."\n";
    $tete.= "Content-type: ".$attach_type1."; name=".$upload_file1."\n";      
    $tete.= "Content-Length:".filesize($upload_file1)."\n";     
    $tete.= "Content-transfer-Encoding: BASE64\n";
    $tete.= "Content-disposition: attachment; filename=".$upload_file1."\n\n";
    $tete.= $encoded_attach1."\n";
    $tete.= '--'.$frontiere."\n";
    $tete.= "Content-type: ".$attach_type2."; name=".$$upload_file2."\n";  
    $tete.= "Content-Length:".filesize($upload_file2)."\n";    
    $tete.= "Content-transfer-Encoding: BASE64\n";
    $tete.= "Content-disposition: attachment; filename=".$upload_file2."\n\n";
    $tete.= $encoded_attach2."\n";
    $tete.= '--'.$frontiere."\n";
    
    // Création du message
    $corps="<div style='padding: 10px; background: url(../images/whitey-fabric.png) repeat scroll left top rgb(230, 230, 230);border: 1px dashed rgb(179, 179, 179); -webkit-border-radius:3px; -moz-border-radius:3px; border-radius:3px; -moz-box-sizing: border-box;-webkit-box-shadow:1px 1px 0px rgb(255, 255, 255); -moz-box-shadow:1px 1px 0px rgb(255, 255, 255); box-shadow:1px 1px 0px rgb(255, 255, 255);font-family:Courier New'>";
    $corps.=$CONTACT_NOMPRENOM.		$Espace06." : ".$f_Nom."\n";
    $corps.=$CONTACT_EMAIL.			$Espace07." : ".$f_Email."\n\n";
    $corps.=$REC_Curriculum.		$Espace04." : ".$upload_file1."\n";
    $corps.=$REC_Motivation.		$Espace00." : ".$upload_file2."\n</div>";
    
    if(mail(MAIL_WEBMASTER, $titre, stripslashes($corps), $tete)){$ok_mail="true";}else{$erreur.="<div class='TexteError'>".$CAS_ErreurEnvois2."</div>";}
    }}
    
    }}
    
    ?>
    1. Tu as définis les entêtes HTML du mail ? Sinon je pourrais pas trop t'aider à ce niveau, les mails et moi ca fait 2
  3. Je sens que j'y suis presque...
    Après ces modifications, je reçois le mail avec 1 seule pièce jointe sur 2 (f_Curriculum) et pas f_Motivation
    Je peux le télécharger et l'ouvrir

    Cependant, je ne reçois pas le corps du message ni la seconde pièce jointe.

    <?php
    if(isset($_POST['submit'])){$erreur="";
    
    // Nettoyage des entrées
    while(list($var,$val)=each($_POST)){if(!is_array($val)){$$var=strip_tags($val);}
    else{while(list($arvar,$arval)=each($val)){$$var[$arvar]=strip_tags($arval);}}}
    
    // Formatage des entrées
    $f_Nom=trim(ucwords(preg_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_Nom)));
    $f_Email=trim(ucwords(preg_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_Email)));
    
    // Verification des champs
    if(strlen($f_Nom)<2) {$erreur.="<li>".$REC_ErrNom; $errf_Nom=1;}
    if(strlen($f_Email)<2) {$erreur.="<li>".$REC_ErrEmail1; $errf_Email=1; }
    else{if(!preg_match('/^[^@]{1,64}@[^@]{1,255}$/', $f_Email)) {$erreur.="<li>".$REC_ErrEmail2; $errf_Email=1;}}
    if($_FILES['f_Curriculum']['error'] == UPLOAD_ERR_NO_FILE) {$erreur.="<li>".$REC_ErrCurriculum; $errf_Curriculum=1;}
    if($_FILES['f_Motivation']['error'] == UPLOAD_ERR_NO_FILE) {$erreur.="<li>".$REC_ErrMotivation; $errf_Motivation=1;}
    
    
    if($erreur==""){
    
    $upload_file1 = $_FILES['f_Curriculum']['name'];
    $upload_file2 = $_FILES['f_Motivation']['name'];
    
    if (move_uploaded_file($_FILES['f_Curriculum']['tmp_name'], $upload_file1)) {
    	$ext1 = explode(".", basename($_FILES['f_Curriculum']['name']));
    switch($ext1[1]) {default: $attach_type1 = "application/octet-stream"; break;
    case "gz": $attach_type1 = "application/x-gzip"; break;
    case "tgz": $attach_type1 = "application/x-gzip"; break;
    case "zip": $attach_type1 = "application/zip"; break;
    case "pdf": $attach_type1 = "application/pdf"; break;
    case "png": $attach_type1 = "image/png"; break;
    case "gif": $attach_type1 = "image/gif"; break;
    case "jpg": case"jpeg": $attach_type1 = "image/jpeg"; break;
    case "txt": $attach_type1 = "text/plain"; break;
    case "htm": $attach_type1 = "text/html"; break;
    case "html": $attach_type1 = "text/html"; break;}
    
    if (move_uploaded_file($_FILES['f_Motivation']['tmp_name'], $upload_file2)) {
    	$ext2 = explode(".", basename($_FILES['f_Motivation']['name']));
    switch($ext2[1]) {default: $attach_type2 = "application/octet-stream"; break;
    case "gz": $attach_type2 = "application/x-gzip"; break;
    case "tgz": $attach_type2 = "application/x-gzip"; break;
    case "zip": $attach_type2 = "application/zip"; break;
    case "pdf": $attach_type2 = "application/pdf"; break;
    case "png": $attach_type2 = "image/png"; break;
    case "gif": $attach_type2 = "image/gif"; break;
    case "jpg": case"jpeg": $attach_type2 = "image/jpeg"; break;
    case "txt": $attach_type2 = "text/plain"; break;
    case "htm": $attach_type2 = "text/html"; break;
    case "html": $attach_type2 = "text/html"; break;}
    
    if(file_exists($upload_file1)) {
    $file1 = fopen($upload_file1, "r");
    $contents1 = fread($file1, filesize($upload_file1));
    $encoded_attach1 = chunk_split(base64_encode($contents1));
    fclose($file1);}
    
    if(file_exists($upload_file2)) {
    $file2 = fopen($upload_file2, "r");
    $contents2 = fread($file2, filesize($upload_file2));
    $encoded_attach2 = chunk_split(base64_encode($contents2));
    fclose($file2);}
    
    
    $frontiere = '-----=' . md5(uniqid(mt_rand()));
    
    $titre=$REC_PostulerOffre.': '.$f_Reference;
    $tete="From:".$f_Email."\n";
    $tete.='MIME-Version: 1.0'."\n";
    $tete.='Content-Type: multipart/mixed; boundary="'.$frontiere.'"'."\n";
    
    $tete.= '--'.$frontiere."\n";
    $tete.= "Content-type: ".$attach_type1."; name=".$upload_file1."\n";  
    $tete.= "Content-type: ".$attach_type2."; name=".$upload_file2."\n";    
    $tete.= "Content-Length:".filesize($upload_file1)."\n";    
    $tete.= "Content-Length:".filesize($upload_file2)."\n";    
    $tete.= "Content-transfer-Encoding: BASE64\n";
    $tete.= "Content-disposition: attachment; filename=".$upload_file1."\n\n";
    $tete.= "Content-disposition: attachment; filename=".$upload_file2."\n\n";
    $tete.= $encoded_attach1."\n";
    $tete.= $encoded_attach2."\n";
    $tete.= '--'.$frontiere.'--'."\n";
    
    // Création du message
    $corps.=$REC_Nom.": ".$f_Nom."\n";
    $corps.=$REC_Email.": ".$f_Email."\n";
    $corps.=$REC_Curriculum.": ".$f_Curriculum."\n";
    $corps.=$REC_Motivation.": ".$f_Motivation."\n";
    
    if(mail(MAIL_WEBMASTER, $titre, stripslashes($corps), $tete)){$ok_mail="true";}else{$erreur.="<div class='TexteError'>".$CAS_ErreurEnvois2."</div>";}
    }}
    
    }}
    
    ?>
    1. Déjà, la condition du if me fait erreur lorsque je met un else {echo ""}
      Ensuite, considérent que le $f_Curriculum est le champ de fichier qui récupère mon image, "si" le fichier est envoyé, il est renommé en noname et pèse 1Ko
      J'ai beau cherché le } en plus je ne l'ai pas trouvé... voici dans le code complet de ma page (en supprimant les modifications effectuées depuis quelques jours :
      <?php
      $StyleErreur="border-color:rgba(255, 41, 54, 0.8); outline:0; outline:thin dotted \9;
      -webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 8px rgba(255, 41, 54, 0.6);
      -moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 8px rgba(255, 41, 54, 0.6);
      box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 8px rgba(255, 41, 54, 0.6);";
      
      if(isset($_POST['submit'])){$erreur="";
      
      // Nettoyage des entrées
      while(list($var,$val)=each($_POST)){if(!is_array($val)){$$var=strip_tags($val);}else{while(list($arvar,$arval)=each($val)){$$var[$arvar]=strip_tags($arval);}}}
      
      // Formatage des entrées
      $f_Nom=trim(ucwords(preg_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_Nom)));
      $f_Email=trim(ucwords(preg_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_Email)));
      
      // Verification des champs
      if(strlen($f_Nom)<2) {$erreur.="<li>".$REC_ErrNom; $errf_Nom=1;}
      if(strlen($f_Email)<2) {$erreur.="<li>".$REC_ErrEmail1; $errf_Email=1; }
      else{if(!preg_match('/^[^@]{1,64}@[^@]{1,255}$/', $f_Email)) {$erreur.="<li>".$REC_ErrEmail2; $errf_Email=1;}}
      if($_FILES['f_Curriculum']['error'] == UPLOAD_ERR_NO_FILE) {$erreur.="<li>".$REC_ErrCurriculum; $errf_Curriculum=1;}
      if($_FILES['f_Motivation']['error'] == UPLOAD_ERR_NO_FILE) {$erreur.="<li>".$REC_ErrMotivation; $errf_Motivation=1;}
      
      if($erreur==""){
      
      $upload_file = $uploaddir.$_FILES[$f_Curriculum]['name'];
      
      if (move_uploaded_file($_FILES[$f_Curriculum]['tmp_name'], $upload_file)) {
      $ext = explode(".", basename($_FILES[$f_Curriculum]['name']));
      switch($ext[1]) {
      default:           $attach_type =  "application/octet-stream"; 
      break; case "png": $attach_type =  "image/png";
      break; case "gif": $attach_type =  "image/gif";
      break; case "jpg": $attach_type =  "image/jpg";
      break; case"jpeg": $attach_type =  "image/jpeg";
      break; case "bmp": $attach_type =  "image/bmp";
      break;}
      
      if (file_exists($upload_file)) {
      $file = fopen($upload_file, "r");
      $contents = fread($file, filesize($upload_file));
      $encoded_attach = chunk_split(base64_encode($contents));
      fclose($file);}
      
      $frontiere = '-----=' . md5(uniqid(mt_rand()));
      
      $titre=$REC_PostulerOffre.': '.$f_Reference;
      $tete="From:".$f_Email."\n";
      $tete.='MIME-Version: 1.0'."\n";
      $tete.='Content-Type: multipart/mixed; boundary="'.$frontiere.'"'."\n";
      $tete.='Content-Transfer-Encoding: 8bit';
      $tete.= 'Content-Type: '.$ctype.'; name="'.$f_Curriculum.'"'."\n";
      $tete.= 'Content-Transfer-Encoding: base64'."\n";
      $tete.= 'Content-Disposition:attachement; filename="'.$f_Curriculum.'"'."\n\n";
      $tete.= chunk_split(base64_encode(file_get_contents($f_Curriculum)))."\n";  
      
      // Création du message
      $corps= '--'.$frontiere."\n";
      $corps.=$REC_Nom.": ".$f_Nom."\n";
      $corps.=$REC_Email.": ".$f_Email."\n";
      $corps.=$REC_Curriculum.": ".$f_Curriculum."\n";
      $corps.=$REC_Motivation.": ".$f_Motivation."\n";
      $corps.= '--'.$frontiere.'--'."\n";
      
      if(mail('jaber.ahmed.a@gmail.com', $titre, stripslashes($corps), $tete)){
      $ok_mail="true";}else{$erreur.="<div class='TexteError'>".$CAS_ErreurEnvois2."</div>";}}}
      
      }
      
      ?>
      <!-- ######################################################################################################### -->
      <?php include("../config.php"); ?>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <link type="text/css" href="../css/styles.css" rel="stylesheet" />
      <?php include("../includes/header.php"); ?>
      <!-- ######################################################################################################### -->
      <!-- ######################################################################################################### -->
      
      <table width="970" border="0" align="center" cellpadding="0" cellspacing="0">
        <tr>
          <td width="250" align="left" valign="top" class="CadreBlanc"><?php include("menu.php"); ?></td>
          <td width="15" align="left">&nbsp;</td>
          <td align="left" valign="top" class="CadreBlanc"><span class="Gras Souligne TexteCyan Taille16"><?php echo $REC_OffreEmploi; ?></span>
          <div class="Espace30"></div><?php echo $REC_SpontaneTexte; ?>
          <div class="Espace30"></div>
          <table width="660" border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td align="left" valign="top" class="CadreGris"><?php if($ok_mail=="true"){ ?>
                <table width='639' border='0' cellspacing='0' cellpadding='0'>
                  <tr>
                    <td>Le message ci-dessous nous a bien été transmis, et nous vous en remercions.</td>
                  </tr>
                  <tr>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td><tt><?php echo nl2br(stripslashes($corps)); ?></tt></td>
                  </tr>
                  <tr>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td>Nous allons y donner suite dans les meilleurs délais.<br />
                      A bientôt.</td>
                  </tr>
                </table>
                <?php }else{ ?>
                <form action="<?php echo $PHP_SELF ?>" method="post" enctype="multipart/form-data" name="Form" id="Form">
                  <table width="639" border="0" cellspacing="0" cellpadding="0">
                    <?php if($erreur){ ?>
                    <tr>
                      <td colspan="3"><div class="DivError"><span class="TexteError" ><?php echo $CAS_ErreurEnvois; ?></span>
                        <ul class="TexteGris">
                          <?php echo $erreur ?>
                        </ul>
                      </div></td>
                    </tr>
                    <?php } ?>
                    <tr>
                      <td colspan='3'>&nbsp;</td>
                    </tr>
                    <tr>
                      <td width="200"><?php echo $REC_Nom; ?></td>
                      <td width="20"><div class="Gras TexteRouge Taille14">*</div></td>
                      <td><input type="text" style="width:100%; <?php if($errf_Nom==1){print($StyleErreur);} ?>;" name="f_Nom" value="<?php echo stripslashes($f_Nom); ?>" /></td>
                    </tr>
                    <tr>
                      <td colspan="3"><div class="Espace10"></div></td>
                    </tr>
                    <tr>
                      <td><?php echo $REC_Email; ?></td>
                      <td><div class="Gras TexteRouge Taille14">*</div></td>
                      <td><input type="text" style="width:100%; <?php if($errf_Email==1){print($StyleErreur);} ?>;" name="f_Email" value="<?php echo stripslashes($f_Email); ?>" /></td>
                    </tr>
                    <tr>
                      <td colspan="3"><div class="Espace10"></div></td>
                      </tr>
                    <tr>
                      <td><?php echo $REC_Telephone; ?></td>
                      <td><div class="Gras TexteRouge Taille14">*</div></td>
                      <td><input type="text" style="width:100%; <?php if($errf_Telephone==1){print($StyleErreur);} ?>;" name="f_Telephone" value="<?php echo stripslashes($f_Telephone); ?>" /></td>
                    </tr>
                    <tr>
                      <td colspan="3"><div class="Espace10"></div></td>
                    </tr>
                    <tr>
                      <td><?php echo $REC_Curriculum; ?></td>
                      <td><div class="Gras TexteRouge Taille14">*</div></td>
                      <td><input type="hidden" name="MAX_FILE_SIZE" value="1048576" />
                        <input type="file" style="width:100%; text-align:left;" <?php if($errf_Curriculum==1){print("class='Btn BtnRouge'");} ?> name="f_Curriculum" /></td>
                    </tr>
                    <tr>
                      <td colspan="3"><div class="Espace10"></div></td>
                    </tr>
                    <tr>
                      <td><?php echo $REC_Motivation; ?></td>
                      <td><div class="Gras TexteRouge Taille14">*</div></td>
                      <td><input type="hidden" name="MAX_FILE_SIZE" value="1048576" />
                        <input type="file" style="width:100%; text-align:left;" <?php if($errf_Curriculum==1){print("class='Btn BtnRouge'");} ?> name="f_Motivation" /></td>
                    </tr>
                    <tr>
                      <td colspan="3"><div class="Espace20"></div></td>
                    </tr>
                    <tr>
                      <td colspan="3" align="right"><span class="Italique TexteRouge">*</span><span class="Italique TexteGris"> : <?php echo $ChampObligatoire; ?></span></td>
                    </tr>
                    <tr>
                      <td colspan="3"><div class="Espace20"></div></td>
                    </tr>
                    <tr>
                      <td colspan="3" align="center"><input type='submit' name='submit' value='Envoyer' class="Btn BtnBleu" style="width:150px" /></td>
                    </tr>
                    <tr>
                      <td colspan="3" align="center"><div class="Espace60"></div></td>
                    </tr>
                    <tr>
                      <td colspan="3" align="left"><div class="CadreGris Italique TexteGris Taille12"><?php echo $REC_Confidentialite; ?></div></td>
                    </tr>
                  </table>
                </form>
                <?php } ?></td>
            </tr>
        </table></td>
        </tr>
      </table>
      <!-- ######################################################################################################### -->
      <!-- ######################################################################################################### -->
      <?php include("../includes/footer.php"); ?>
      
      1. Déja, comme dit précédemment, $_FILES[$f_Curriculum] n'existe pas, c'est $_FILES['f_Curriculum']

        Ensuite, test tout tes if et dis lequel ne passe pas
    2. Non... je n'y arrives pas !
      J'ai beau travailler dessus... je suis crevé !
      1. Tu en es rendu ou ?
    3. Après avoir modifié encore et encore, le mail ne s'envois plus lorsque je met ce code :
      if($erreur==""){
      
      $upload_file = $uploaddir.$_FILES[$f_Curriculum]['name'];
      if (move_uploaded_file($_FILES[$f_Curriculum]['tmp_name'], $upload_file)) {
      $ext = explode(".", basename($_FILES[$f_Curriculum]['name']));
      switch($ext[1]) {
      default:           $attach_type =  "application/octet-stream"; 
      break; case "png": $attach_type =  "image/png";
      break; case "gif": $attach_type =  "image/gif";
      break; case "jpg": $attach_type =  "image/jpg";
      break; case"jpeg": $attach_type =  "image/jpeg";
      break; case "bmp": $attach_type =  "image/bmp";
      break;}
      
      if (file_exists($upload_file)) {
      $file = fopen($upload_file, "r");
      $contents = fread($file, filesize($upload_file));
      $encoded_attach = chunk_split(base64_encode($contents));
      fclose($file);}
      
      $frontiere = '-----=' . md5(uniqid(mt_rand()));
      
      $titre=$REC_PostulerOffre.': '.$f_Reference;
      $tete="From:".$f_Email."\n";
      $tete.='MIME-Version: 1.0'."\n";
      $tete.='Content-Type: multipart/mixed; boundary="'.$frontiere.'"'."\n";
      $tete.='Content-Transfer-Encoding: 8bit';
      $tete.= 'Content-Type: '.$ctype.'; name="'.$f_Curriculum.'"'."\n";
      $tete.= 'Content-Transfer-Encoding: base64'."\n";
      $tete.= 'Content-Disposition:attachement; filename="'.$f_Curriculum.'"'."\n\n";
      $tete.= chunk_split(base64_encode(file_get_contents($f_Curriculum)))."\n";  
      
      // Création du message
      $corps= '--'.$frontiere."\n";
      $corps.=$REC_Nom.": ".$f_Nom."\n";
      $corps.=$REC_Email.": ".$f_Email."\n";
      $corps.=$REC_Curriculum.": ".$f_Curriculum."\n";
      $corps.=$REC_Motivation.": ".$f_Motivation."\n";
      $corps.= '--'.$frontiere.'--'."\n";
      
      if(mail('monmail@gmail.com', $titre, stripslashes($corps), $tete)){
      $ok_mail="true";}else{$erreur.="<div class='TexteError'>".$CAS_ErreurEnvois2."</div>";}}}
      
      }
      Y a t-il une raison ?
      1. La seule raison que je que je vois serait ton 1er if ne passe pas :
        if (move_uploaded_file($_FILES[$f_Curriculum]['tmp_name'], $upload_file))

        Est-ce que la condition est remplie ? (rajoute un else)
        Parcque pour moi $f_Curriculum n'existe pas et à moins qu'elle ne contienne 'f_Curriculum', c'est normal que le if n'est pas validé :)

        Si c'est validé, est-ce que le fichier aparait bien dans le dossier d'upload ?

        EDIT : en plus, peut être est-ce parcque tu n'a pas mis tout ton code, mais il y a un } en trop par rapport au {
    4. Ce n'est pas le fichier f_Curriculum mais plutot le champs de fichier.
      J'ai beau modifier, avec et sans $... Ca fais plus de 2 semaines que je suis dessus, j'en bave sérieusement.

      Voici toute ma page, je ne sais même pas si il y 'a une erreur dans le code...
      svp aidez moi !
      <?php
      if(isset($_POST['submit'])){$erreur="";
      
      // Nettoyage des entrées
      while(list($var,$val)=each($_POST)){if(!is_array($val)){$$var=strip_tags($val);}else{while(list($arvar,$arval)=each($val)){$$var[$arvar]=strip_tags($arval);}}}
      
      // Formatage des entrées
      $f_Nom=trim(ucwords(preg_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_Nom)));
      $f_Email=trim(ucwords(preg_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_Email)));
      
      // Verification des champs
      if(strlen($f_Nom)<2) {$erreur.="<li>".$REC_ErrNom; $errf_Nom=1;}
      if(strlen($f_Email)<2) {$erreur.="<li>".$REC_ErrEmail1; $errf_Email=1; }
      else{if(!preg_match('/^[^@]{1,64}@[^@]{1,255}$/', $f_Email)) {$erreur.="<li>".$REC_ErrEmail2; $errf_Email=1;}}
      if($_FILES['f_Curriculum']['error'] == UPLOAD_ERR_NO_FILE) {$erreur.="<li>".$REC_ErrCurriculum; $errf_Curriculum=1;}
      if($_FILES['f_Motivation']['error'] == UPLOAD_ERR_NO_FILE) {$erreur.="<li>".$REC_ErrMotivation; $errf_Motivation=1;}
      
      if($erreur==""){
      
      $frontiere = '-----=' . md5(uniqid(mt_rand()));
      
      $titre=$REC_PostulerOffre.': '.$f_Reference;
      $tete="From:".$f_Email."\n";
      $tete.= 'MIME-Version: 1.0'."\n";
      $tete.='Content-Type: multipart/mixed; boundary="'.$frontiere.'"'."\n";
      $tete.='Content-Transfer-Encoding: 8bit';
      
      if($_POST['submit'] != ''){
      switch(strrchr(basename($f_Curriculum), ".")){
      case ".pdf": $ctype = "application/pdf"; break;
      case ".png": $ctype = "image/png"; break;
      case ".gif": $ctype = "image/gif"; break;
      case ".jpg": $ctype = "image/jpg"; break;
      case ".txt": $ctype = "text/plain"; break;
      default: $ctype = "application/octet-stream"; break;}
      
      $tete.= 'Content-Type: '.$ctype.'; name="'.$f_Curriculum.'"'."\n";
      $tete.= 'Content-Transfer-Encoding: base64'."\n";
      $tete.= 'Content-Disposition:attachement; filename="'.$f_Curriculum.'"'."\n\n";
      $tete.= chunk_split(base64_encode(file_get_contents($f_Curriculum)))."\n";  
      
      // Création du message
      $corps= '--'.$frontiere."\n";
      $corps.=$REC_Nom.": ".$f_Nom."\n";
      $corps.=$REC_Email.": ".$f_Email."\n";
      $corps.=$REC_Curriculum.": ".$f_Curriculum."\n";
      $corps.=$REC_Motivation.": ".$f_Motivation."\n";
      $corps.= '--'.$frontiere.'--'."\n";
      
      if(mail('monmail@gmail.com', $titre, stripslashes($corps), $tete)){
      $ok_mail="true";}else{$erreur.="<div class='TexteError'>".$CAS_ErreurEnvois2."</div>";}}}
      
      }
      
      ?>
      <table width="660" border="0" align="center" cellpadding="0" cellspacing="0">
        <tr>
          <td align="left" valign="top" class="CadreGris"><? if($ok_mail=="true"){ ?>
            <table width='639' border='0' cellspacing='0' cellpadding='0'>
              <tr>
                <td>Le message ci-dessous nous a bien été transmis, et nous vous en remercions.</td>
              </tr>
              <tr>
                <td>&nbsp;</td>
              </tr>
              <tr>
                <td><tt><? echo nl2br(stripslashes($corps));?></tt></td>
              </tr>
              <tr>
                <td>&nbsp;</td>
              </tr>
              <tr>
                <td>Nous allons y donner suite dans les meilleurs délais.<br />A bientôt.</td>
              </tr>
            </table>
            <? }else{ ?>
            <form action="<? echo $PHP_SELF ?>" method="post" enctype="multipart/form-data" name="Form" id="Form">
              <table width="639" border="0" cellspacing="0" cellpadding="0">
                <? if($erreur){ ?>
                <tr>
                  <td colspan="3"><?php echo $CAS_ErreurEnvois; ?><ul><? echo $erreur ?></ul>
                  </td>
                </tr>
                <? } ?>
                <tr>
                  <td colspan='3'>&nbsp;</td>
                </tr>
                <tr>
                  <td width="200">Nom</td>
                  <td width="20">*</td>
                  <td><input type="text" style="width:100%;" name="f_Nom" value="<? echo stripslashes($f_Nom); ?>" /></td>
                </tr>
                <tr>
                  <td colspan="3">*</td>
                </tr>
                <tr>
                  <td>Email</td>
                  <td>*</td>
                  <td><input type="text" style="width:100%;" name="f_Email" value="<? echo stripslashes($f_Email); ?>" /></td>
                </tr>
                <tr>
                  <td colspan="3">&nbsp;</td>
                </tr>
                <tr>
                  <td>Piece jointe 1</td>
                  <td>*</td>
                  <td><input type="file" style="width:100%; text-align:left;" name="f_Curriculum" /></td>
                </tr>
                <tr>
                  <td colspan="3">&nbsp;</td>
                </tr>
                <tr>
                  <td>Piece jointe 2</td>
                  <td>*</td>
                  <td><input type="file" style="width:100%; text-align:left;" name="f_Motivation" /></td>
                </tr>
                <tr>
                  <td colspan="3">&nbsp;</td>
                </tr>
                <tr>
                  <td colspan="3" align="center"><input type='submit' name='submit' value='Envoyer' /></td>
                </tr>
                <tr>
                  <td colspan="3" align="center">&nbsp;</td>
                </tr>
              </table>
            </form>
            <? } ?></td>
        </tr>
      </table>
      
      1. Il faut que ton fichier envoyé via ton input file soit traité par le serveur et déplacé dans un dossier via la fonction move_uploaded_file()

        Ce tuto peut t'aider : https://openclassrooms.com/fr/courses

        Au passage, fait bien attention à utiliser les balises <?php au lieu de <? ;)
    5. Cette erreur c'est juste pour dire qu'il ne trouve pas de fichier ou dossier nommé 'f_Curriculum', soit le lien vers ce fichier n'est pas bon, soit le nom qui n'est pas bon, ou sinon le fichier n'existe tout simplement pas.
      1.  Warning: file_get_contents(f_Curriculum): failed to open stream: No such file or directory in /homez.724/sivop/www/jobs/postuler.php on line 52


        Voici l'erreur que je rencontre.
        Je n'arrive vraiment plus à comprendre :'(
        <?php
        if(isset($_POST['submit'])){$erreur="";
        
        // Nettoyage des entrées
        while(list($var,$val)=each($_POST)){if(!is_array($val)){$$var=strip_tags($val);}else{while(list($arvar,$arval)=each($val)){$$var[$arvar]=strip_tags($arval);}}}
        
        // Formatage des entrées
        $f_Nom=trim(ucwords(preg_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_Nom)));
        $f_Email=trim(ucwords(preg_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_Email)));
        
        // Verification des champs
        if(strlen($f_Nom)<2) {$erreur.="<li>".$REC_ErrNom; $errf_Nom=1;}
        if(strlen($f_Email)<2) {$erreur.="<li>".$REC_ErrEmail1; $errf_Email=1; }
        else{if(!preg_match('/^[^@]{1,64}@[^@]{1,255}$/', $f_Email)) {$erreur.="<li>".$REC_ErrEmail2; $errf_Email=1;}}
        if($_FILES['f_Curriculum']['error'] == UPLOAD_ERR_NO_FILE) {$erreur.="<li>".$REC_ErrCurriculum; $errf_Curriculum=1;}
        if($_FILES['f_Motivation']['error'] == UPLOAD_ERR_NO_FILE) {$erreur.="<li>".$REC_ErrMotivation; $errf_Motivation=1;}
        
        if($erreur==""){
        
        $frontiere = '-----=' . md5(uniqid(mt_rand()));
        
        $titre=$REC_PostulerOffre.': '.$f_Reference;
        $tete="From:".$f_Email."\n";
        $tete.= 'MIME-Version: 1.0'."\n";
        $tete.='Content-Type: multipart/mixed; boundary="'.$frontiere.'"'."\n";
        $tete.='Content-Transfer-Encoding: 8bit';
        
        if($_POST['submit'] != ''){
        switch(strrchr(basename($_POST['submit']), ".")){
        case ".pdf": $ctype = "application/pdf"; break;
        case ".png": $ctype = "image/png"; break;
        case ".gif": $ctype = "image/gif"; break;
        case ".jpg": $ctype = "image/jpeg"; break;
        case ".txt": $ctype = "text/plain"; break;
        default: $ctype = "application/octet-stream"; break;
        }
        
        $tete.= 'Content-Type: '.$ctype.'; name="f_Curriculum"'."\n";
        $tete.= 'Content-Transfer-Encoding: base64'."\n";
        $tete.= 'Content-Disposition:attachement; filename="f_Curriculum"'."\n\n";
        $tete.= chunk_split(base64_encode(file_get_contents('f_Curriculum')))."\n"; 
        
        // Création du message
        $corps= '--'.$frontiere."\n";
        $corps.=$REC_Nom.": ".$f_Nom."\n";
        $corps.=$REC_Email.": ".$f_Email."\n";
        $corps.=$REC_Curriculum.": ".$f_Curriculum."\n";
        $corps.=$REC_Motivation.": ".$f_Motivation."\n";
        $corps.= '--'.$frontiere.'--'."\n";
        
        if(mail("monmail@gmail.com", $titre, stripslashes($corps), $tete)){
        $ok_mail="true";}else{$erreur.="<div class='DivError TexteError'><li>".$CAS_ErreurEnvois2."</div>";}}}
        }
        ?>
        1. Si je ne me trompe pas, le fichier "f_Curriculum" n'existe pas, ce n'est que le nom de la clé de $_FILES[].
          Tu as procédé à l'enregistrement du fichier envoyé sur le serveur avant de le resservir dans le mail ?