Problème pièce jointe de 0Ko PHP

Fermé
polux59mbouk Messages postés 9 Date d'inscription vendredi 19 février 2010 Statut Membre Dernière intervention 3 octobre 2010 - 19 févr. 2010 à 14:55
 LMTH - 13 avril 2010 à 10:38
Bonjour,

Je suis confronté à un problème en PHP , lorsque je reçois le mail de mon formulaire avec pièces jointes , la première pièce jointe que je reçois s'appelle Undefinedxxxxxx.yyy ( xxxxxx étant le nom de la pièce jointe, yyy l'extension ), et elle est égale à 0Ko .
Ce qui fait que la fichier qui est envoyé est remplacé comme ci-dessus ,je ne peux donc pas savoir à quoi elle ressemble.

Je vous met le code de mon fichier mail.php :

<?php

// Donnees sur la societe
$societe = utf8_decode(strtoupper($_POST['societe']));
$adresse = utf8_decode($_POST['adresse']);
$adresse_comp = utf8_decode($_POST['adresse_comp']);
$cp = utf8_decode($_POST['cp']);
$ville = utf8_decode(strtoupper($_POST['ville']));
$tel = utf8_decode(wordwrap($_POST['tel'], 2, " ", true));
$fax = utf8_decode(wordwrap($_POST['fax'], 2, " ", true));
// Donnees perso
$nom = utf8_decode(strtoupper($_POST['nom']));
$prenom = utf8_decode(ucfirst($_POST['prenom']));
$fonct = utf8_decode(strtoupper($_POST['fonct']));
$tel2 = utf8_decode(wordwrap($_POST['tel2'], 2, " ", true));
$mail = utf8_decode($_POST['mail']);
$devis = utf8_decode(nl2br(stripslashes($_POST['devis'])));
$fichiers = utf8_decode($_POST['fichiers']);

$split = explode("||", $fichiers);


// Initialisation
$jour = array("lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi", "dimanche");
$mois = array("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "aout", "septembre", "octobre", "novembre", "décembre");

$date = $jour[intval(date("N"))-1] . " " . date("d") . " " . $mois[intval(date("n"))-1] . " " . date("Y") . " à " . date("H") . "h" . date("i");

$corps = '<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<!-- <link rel="stylesheet" type="text/css" href="Style.css"> -->
<title>Demande de devis par blabla.fr</title>


</head>

<body>

<!-- HEADER -->

<div id="header">

<div class="adroite">Demande le <span>'.$date.'</span></div>
<h2>DEMANDE DE DEVIS PAR ....</h2>

</div>

<!-- CLIENT ET SOCIETE -->

<div id="societe">
<fieldset><legend>SOCIETE</legend>
<b>'.$societe.'</b><br />
'.$adresse.'<br />
';
if($adresse_comp) $corps .= $adresse_comp.'<br />
';
$corps .= $cp.' '.$ville.'<br />
Tél. : '.$tel.'<br />
';
if($fax) $corps .= 'Fax : '.$fax;
$corps .= '
</fieldset>
</div>

<div id="client">
<fieldset><legend>CONTACT</legend>
<b>'.$prenom.' '.$nom.'</b><br />
'.$fonct.'<BR />
';
if($tel2) $corps .= 'Tél. : '.$tel2.'<br />
';
if($mail) $corps .= 'E-mail : '.$mail.'<br />
';
$corps .= '
</fieldset>
</div>

<div class="spacer"></div>

<!-- DONNEES -->

<div id="descriptif">
<fieldset><legend>DESCRIPTIF</legend>
'.$devis.'
</fieldset>
</div>

<div id="joints">
<span>PIECES FOURNIES</span> : ';
for($i=0;$i<count($split);$i++){
if($split[$i] != ""){
$corps .= "[ ".$split[$i]." (".round(filesize("./imageup/".$split[$i])/1024)." Ko) ] ";
}
}
$corps .= '
</div>


<!-- COMPLEMENTS -->

<div id="notes">
<fieldset><legend>NOTES MANUSCRITES</legend>

</fieldset>
</div>

</body>
</html>';

//-----------------------------------------------
//DECLARE LES VARIABLES
//-----------------------------------------------

$email_expediteur='postmaster@......fr';
$email_reply=$mail;
$destinataire='blabla@free.fr';
$sujet='Demande de devis par site ';

$message_texte=$corps;

//-----------------------------------------------
//GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML
//-----------------------------------------------

$frontiere = '-----=' . md5(uniqid(mt_rand()));

//-----------------------------------------------
//HEADERS DU MAIL
//-----------------------------------------------

$headers = 'From: "'.$prenom.' '.$nom.' '.$societe.'" <'.$mail.'>'."\n";
$headers .= 'Return-Path: <'.$email_reply.'>'."\n";
$headers .= 'MIME-Version: 1.0'."\n";
$headers .= 'Content-Type: multipart/mixed; boundary="'.$frontiere.'"';

//-----------------------------------------------
//MESSAGE TEXTE
//-----------------------------------------------
$message = 'This is a multi-part message in MIME format.'."\n\n";

$message .= '--'.$frontiere."\n";
$message .= 'Content-Type: text/html; charset="iso-8859-2"'."\n";
$message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$message .= $message_texte."\n\n";

//-----------------------------------------------
//PIECE JOINTE
//-----------------------------------------------

for($i=0;$i<count($split);$i++){

if($split[$i] != ""){

$uploadfile = "./imageup/".$split[$i];

$message .= '--'.$frontiere."\n";
//$message .= 'Content-Type: '.file_get_contents($uploadfile.".txt").';name='.$_FILES['fichier']['name']."\n";
$message .= 'Content-Type: ' . file_get_contents($uploadfile.".txt") . '; name="' . $split[$i] . '"'."\n";
$message .= 'Content-Transfer-Encoding: base64'."\n";
$message .= 'Content-Disposition:attachement; filename="'.$split[$i].'"'."\n\n";

$message .= chunk_split(base64_encode(file_get_contents($uploadfile)))."\r\n\r\n\r\n";


unlink($uploadfile);
unlink($uploadfile.".txt");

}

}

$message .= '--'.$frontiere."\n";
//----------------------|
//--- ENVOIE DU MAIL ---|
//----------------------|

$erreur=0;
if(mail($destinataire,$sujet,$message,$headers))
{
$erreur=1;
}


echo utf8_encode("erreur=".$erreur);

?>


Je vous remercie d'avance ;)

2 réponses

polux59mbouk Messages postés 9 Date d'inscription vendredi 19 février 2010 Statut Membre Dernière intervention 3 octobre 2010 1
10 mars 2010 à 12:39
Est-ce que quelqu'un aurai su se pencher sur mon problème s'il vous plais ??
J'ai vraiment besoin de corriger cette erreur ,car si la personne décide de n'envoyer qu'une seule pièce jointe ,celle-ci sera égale à 0 Ko et donc inutile .
Le site est en flash formulaires compris .

S'il vous plais ,si quelqu'un saurai m'aider parce que ca fait un long moment que je planche dessus ,ce serai sympa .

merci d'avance ;)
0
Salut,

Oui c'est vrai, j'ai le même script aussi et ca ne marche pas(pièce jointe 0.0 KO).

Si vous trouverez une solution, merci de me la partager.
0