piece jointe formulaire mai

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : piece jointe formulaire mai

Re: piece jointe formulaire mai

par Mazarini » 28 juin 2012, 14:43

Au lieu de : \$_FILES['fichier']['name']

\\{$_FILES['fichier']['name']}
ou {$_FILES['fichier']['name']}

nom pièce jointe mail formulaire

par pierrego » 28 juin 2012, 13:10

Bonjour,

J'ai un formulaire dans lequel on peut insérer une pièce jointe ; je la récupère bien par e-mail ; cependant, je souhaiterais qu'elle prenne le nom et le format d'origine à savoir son nom+ pdf ; or dans ma mon mail : j'ai le nom indiqué dans le script : $_FILES['fichier']['name']

Merci


Voici le code php :

<?php
if ((isset($_FILES['fichier']['name'])&&($_FILES['fichier']['error'] == UPLOAD_ERR_OK))) {
$chemin_destination = 'F:\\EasyPHP5.2.10\\www\\TNCIS\\upload\\';
move_uploaded_file($_FILES['fichier']['tmp_name'], $chemin_destination.$_FILES['fichier']['name']);
}
?>
<?php
// Destinataire du mail
$destination = "[email protected]";
// sujet du mail
$sujet = "Livraison";
// Les headers pour un mail multiparts
$headers= "MIME-Version: 1.0\n";
$headers.= "From: ".$_POST["email"]." <".$_POST["email"].">\n";
$headers.= "Content-type: multipart/mixed;\n";
// Chaine permettant de différencier les différentes parties du mail
$limite = '_parties_'.md5(uniqid (rand()));
$headers.= " boundary=\"----=$limite\"\n\n";

// Première partie, corps du mail en HTML
$texte = "------=$limite\n";
$texte.= "Content-type: text/html; charset=\"iso-8859-1\"\n\n";
$texte.= "Vous trouverez ci-dessous la livraison a effectuer pour le : {$_POST['date_ramassage']}"."<br>";
$texte.= " Nom societe: {$_POST['comptes']}"."<br>";
$texte.= " Nom: {$_POST['nom_responsable']}"."<br>";
$texte.= " Prenom: {$_POST['prenom_responsable']}"."<br>";
$texte.= " Telephone: {$_POST['telephone_responsable']}";

// Traitement pour attacher une PJ




// Dans mon exemple, il s'agit d'un fichier pdf, il faut mettre le bon mime type
$attachement = "\n------=$limite\n";
$attachement .= "Content-Type: application/pdf; name=\$_FILES['fichier']['name']\n";
$attachement .= "Content-Transfer-Encoding: base64\n";
$attachement .= "Content-Disposition: attachment; filename=\$_FILES['fichier']['name']\"\n\n";
// Ca y est on joint le fichier en l'encodant en base 64
$attachement .= chunk_split(base64_encode($_FILES['fichier']['name']));

// enfin on envoi le mail
mail($destination, $sujet, $texte.$attachement, $headers);

echo'Vos données entrées : '.'<br/>';
if(isset($_POST['envoi'])){
foreach($_POST as $index=>$valeur){
echo '- '.$index.' : '.$valeur.'<br/>';
}
}
else {
// erreur lors de l'envoi du mail
echo "Un problème s'est produit lors de l'envoi du message";
}
?>

Re: piece jointe formulaire mai

par Xartrick » 28 juin 2012, 11:20

C'est explicite, le fichier n'existe pas.

piece jointe formulaire mai

par pierre_gom » 28 juin 2012, 10:19

Bonjour,

J'ai un formulaire dans lequel l'utilisateur doit joindre un fichier pdf ; le script php renvoi les données et le fichier en pièce jointe : cela fonctionne cependant, j'ai le message suivant :
Warning: file_get_contents(ESSAI.pdf) [function.file-get-contents]: failed to open stream: No such file or directory in F:\EasyPHP5.2.10\www\TNCIS\envoi6.php on line 25

J'ai bien la pièce jointe mais elle est vide.

Pourriez-vous m'aider ; ci-dessous, le code php :

Merci

<?php

// Destinataire du mail
$destination = "[email protected]";
// sujet du mail
$sujet = "Livraison";
// Les headers pour un mail multiparts
$headers= "MIME-Version: 1.0\n";
$headers.= "From: ".$_POST["email"]." <".$_POST["email"].">\n";
$headers.= "Content-type: multipart/mixed;\n";
// Chaine permettant de différencier les différentes parties du mail
$limite = '_parties_'.md5(uniqid (rand()));
$headers.= " boundary=\"----=$limite\"\n\n";

// Première partie, corps du mail en HTML
$texte = "------=$limite\n";
$texte.= "Content-type: text/html; charset=\"iso-8859-1\"\n\n";
$texte.="<HTML><HEAD></HEAD><BODY>Oh un mail !</BODY></HTML>";

// Traitement pour attacher une PJ
// D'abord on lit le fichier
$fichier = 'ESSAI.pdf';
$contenu = file_get_contents($fichier);
$attachement = "\n------=$limite\n";
// Dans mon exemple, il s'agit d'un fichier pdf, il faut mettre le bon mime type
$attachement .= "Content-Type: application/pdf; name=\"ESSAI.pdf\"\n";
$attachement .= "Content-Transfer-Encoding: base64\n";
$attachement .= "Content-Disposition: attachment; filename=\"ESSAI.pdf\"\n\n";
// Ca y est on joint le fichier en l'encodant en base 64
$attachement .= chunk_split(base64_encode($contenu));

// enfin on envoi le mail
mail($destination, $sujet, $texte.$attachement, $headers);

echo'Vos données entrées : '.'<br/>';
if(isset($_POST['envoi'])){
foreach($_POST as $index=>$valeur){
echo '- '.$index.' : '.$valeur.'<br/>';
}
}
else {
// erreur lors de l'envoi du mail
echo "Un problème s'est produit lors de l'envoi du message";
}
?>