Envois de piece jointe

Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   -  
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

4 réponses

mcfly10 Messages postés 1052 Date d'inscription   Statut Membre Dernière intervention   239
 
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
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
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
mcfly10 Messages postés 1052 Date d'inscription   Statut Membre Dernière intervention   239
 
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
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
...Si tu peux m'aider d'avantage, je ne maîtrise pas cette partie là :s
0
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
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