Envois de piece jointe

Bonjour à tous !

Je vous reviens avec une erreur d'envois de pièce jointes.
En fait, mon formulaire comporte 6 champs de fichiers dont 3 sont obligatoires.

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

$boundary = "_".md5 (uniqid (rand()));

// 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_01=trim(ucwords(preg_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_01))); //Nom
$f_02=trim(ucwords(preg_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_02))); //Email
$f_03=trim(ucwords(preg_replace("[^0-9\ +]", "", $f_03)));                     //Téléphone
$f_04=trim(ucwords(preg_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_04))); //Commentaire
$f_11=strip_tags(trim($f_11));
$f_12=strip_tags(trim($f_12));

// Verification des champs
if(strlen($f_01)<2){$erreur.="<li>".$CAS_ErrNoms; $errf_01=1;}
if(strlen($f_02)<2){$erreur.="<li>".$CAS_ErrEmail1; $errf_02=1; }else{
if(!preg_match('/^[^@]{1,64}@[^@]{1,255}$/', $f_02)){$erreur.="<li>".$CAS_ErrEmail2; $errf_02=1;}}
if(strlen($f_03)<2){$erreur.="<li>".$CAS_ErrPhone; $errf_03=1;}
if(strlen($f_04)<2){$erreur.="<li>".$CAS_ErrComment; $errf_04=1;}

if(strlen($f_05)<2){$erreur.="<li>".$CAS_ErrPhoto1; $errf_05=1;}
if(strlen($f_06)<2){$erreur.="<li>".$CAS_ErrPhoto2; $errf_06=1;}
if(strlen($f_07)<2){$erreur.="<li>".$CAS_ErrPhoto3; $errf_07=1;}

$attached_file = file_get_contents($f_05.$f_06.$f_07.$f_08.$f_09.$f10);
$attached_file = chunk_split(base64_encode($attached_file));

$attached = "\n\n"."--".$boundary."\nContent-Type: application;
name=\"$f_05.$f_06.$f_07.$f_08.$f_09.$f10\"\r\n
Content-Transfer-Encoding: base64\r\n
Content-Disposition: attachment; 
f_05;f_06;f_07;f_08;f_09;f_10=\"$f_05;$f_06;$f_07;$f_08;$f_09;$f_10\"\r\n\n"
.$attached_file."--"
.$boundary."--";

// Création du message
if($erreur==""){
$titre =$CAS_CandidCasting;
$tete  ="From:".$f_02."\n";
$tete= "MIME-Version: 1.0\nContent-Type: multipart/mixed;\n boundary=\"$boundary\"\n";
$corps.= "--".$boundary."\nContent-Type: text/plain; charset=ISO-8859-1\r\n\n".$corps.$attached;
$corps.=$CAS_NomPrenom.    		" : ".$f_01."\n";
$corps.=$CAS_AdresseEmail. 		" : ".$f_02."\n";
$corps.=$CAS_Telephone.   		" : ".$f_03."\n";
$corps.=$CAS_Commentaire.  		" : ".$f_04."\n\n";
$corps.=$CAS_Photos1.      		" : ".$f_05."\n";
$corps.=$CAS_Photos2.      		" : ".$f_06."\n";
$corps.=$CAS_Photos3.			" : ".$f_07."\n";
$corps.=$CAS_Photos4.			" : ".$f_08."\n";
$corps.=$CAS_Photos5.			" : ".$f_09."\n";
$corps.=$CAS_Photos6.			" : ".$f_10."\n";

if(mail("mon@mail.com", $titre, stripslashes($corps), $tete)){
$ok_mail="true";}else{$erreur.="<div class='DivError TexteError'><li>".$CAS_ErreurEnvois2."</div>";}}}
?>


Je rencontre une erreur :
Warning: file_get_contents(): Filename cannot be empty in /homez.724/sivop/www/casting_inscription.php on line 37
$attached_file = file_get_contents($f_05.$f_06.$f_07.$f_08.$f_09.$f10);


Pouvez-vous m'aider svp ?

Merci d'avance

4 réponses

  1. A priori $f05 a $10 sont tous vide/null
    Et comme l'appel a file get content se fait avant de verifier l'etat de $erreur du coup ca plante
    0
    1. Bien, l'erreur est passée (grand merci)
      maintenant, l'envoie du formulaire me dit que les zones obligatoires ne sont pas renseignées :
      if(strlen($f_05)<2){$erreur.="<li>".$CAS_ErrPhoto1; $errf_05=1;}
      if(strlen($f_06)<2){$erreur.="<li>".$CAS_ErrPhoto2; $errf_06=1;}
      if(strlen($f_07)<2){$erreur.="<li>".$CAS_ErrPhoto3; $errf_07=1;}


      Pour les zones de texte, ce code fonctionne; mais pour le champ de fichier, est-ce le même code ?
      0
      1. Tu utilises des globales values?
        Si $f09 est un champ "file" alors il ne s'utilise pas pareil qu'un champ "text".
        $f09 est un tableaux, ou tu as plusieurs valeurs : filename tmp_name errors size.
        0
        1. ...Si tu peux m'aider d'avantage, je ne maîtrise pas cette partie là :s
          0
      2. J'ai réussi ^^
        Merci mcfly10 !

        Maintenant, j'obtiens une erreur sur cette ligne... si l'on peux m'aider :
        if($_FILES['f_05']['error'] == UPLOAD_ERR_NO_FILE) {$erreur.="<li>".$CAS_ErrPhoto1; $errf_05=1;}
        if($_FILES['f_06']['error'] == UPLOAD_ERR_NO_FILE) {$erreur.="<li>".$CAS_ErrPhoto2; $errf_06=1;}
        if($_FILES['f_07']['error'] == UPLOAD_ERR_NO_FILE) {$erreur.="<li>".$CAS_ErrPhoto3; $errf_07=1;}


        Voici l'erreur :
        --_e24190b69283c7c9956f51b31286536e
        Content-Type: text/plain; charset=ISO-8859-1
        
        --_e24190b69283c7c9956f51b31286536e
        Content-Type: application;
        name=",,,,,"
        
        Content-Transfer-Encoding: base64
        
        Content-Disposition: attachment;
        f_05,f_06,f_07,f_08,f_09,f_10=",,,,,"
        
        --_e24190b69283c7c9956f51b31286536e--Votre nom et Prénom : Mon nom
        Votre adresse email : monmail@gmail.com
        Votre numéro de téléphone : 000111222
        Et reçois un mail avec une seule pièce jointe sur 6 de 1 Ko avec pour nom "noname"
        0