Problème pièce jointe de 0Ko PHP
polux59mbouk
Messages postés
10
Statut
Membre
-
LMTH -
LMTH -
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 ;)
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 ;)
A voir également:
- Problème pièce jointe de 0Ko PHP
- Pièce d'identité - Accueil - Services publics
- Pps piece jointe ✓ - Forum Réseaux sociaux
- 1 pièce jointe - Guide
- Easy php - Télécharger - Divers Web & Internet
- Publipostage outlook avec pièce jointe pdf - Forum Word
2 réponses
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 ;)
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 ;)