FORMULAIRE ENVOIE DE FICHIER

pulsi Messages postés 7 Date d'inscription mardi 14 novembre 2000 Statut Membre Dernière intervention 22 avril 2005 - 21 avril 2005 à 11:42
cs_sidhannowe Messages postés 75 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 11 décembre 2007 - 22 avril 2005 à 20:25
J'ai crée un formulaire avec un champ de fichier qui envoie un mail lorsqu'on clique sur envoyer. Le pb c'est que ds ma page php, je ne sais pas le script qu'il faut mettre pour que le fichier joint soit dans le mail. Merci de me répondre, c'est un travail professionnel !! 

11 réponses

cs_sidhannowe Messages postés 75 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 11 décembre 2007
21 avril 2005 à 21:43
J'ai déjà fait ca une fois, mais c'est plutot à poster dans la section
PHP. Laisse moi retrouver le code, car il faut encoder le ficher en
base 64, générer des clés, etc c pas simple
0
cs_sidhannowe Messages postés 75 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 11 décembre 2007
21 avril 2005 à 21:46
Voila, je te le file directement. Le formulaire en amont contenait la meme chose que toi, champs texte et champs fichier



<?php

include("config.php");

include("includes/connection.inc");



if ($HTTP_POST_VARS[email] == "" and $HTTP_POST_VARS[pseudo] == "" and $HTTP_POST_VARS[mess] == "") {

$tpl = fopen($chemin_form_tpl, "r");

print str_replace("{m}", $HTTP_GET_VARS[m], fread($tpl, filesize($chemin_form_tpl)));

fclose($tpl);

} else {

// y'a t-il des fichiers joints ?

$fj_b = false;

// vérification des extensions des fichiers joints

for ($i=0; $i<=4; $i++) {

if ($_FILES["fichier$i"]["tmp_name"] != "" and $_FILES["fichier$i"]["tmp_name"] != "none") {

$fj_b = true;

$extension = strtolower(substr($_FILES["fichier$i"]["name"], strrpos($_FILES["fichier$i"]["name"], ".") + 1));

if (substr_count($ext_aut, $extension) == 0) {

include($chemin_interdit);

exit;

}

}

}

// vérification si l'e-mail est présent ou non dans la blacklist

$resultat = mysql_query("select * from bl_email");

$email_amat = strtolower(base64_decode($HTTP_POST_VARS[m]));

$email_int = trim(strtolower($HTTP_POST_VARS[email]));

$dest = $email_amat;

while ($data = mysql_fetch_array($resultat)) {

if ($email_int == $data[email]) {

$dest = $email_admin;

break;

}

}

// vérification si un mot interdit n'est pas présent dans le message

$resultat = mysql_query("select * from bl_mots");

$msg = strtolower($HTTP_POST_VARS[mess]);

while ($data = mysql_fetch_array($resultat)) {

if (substr_count($mess, $data[mot]) != 0) {

$dest = $email_admin;

break;

}

}

// frontière

$boundary = md5(uniqid(time()));

// entete

$entete = "MIME-Version: 1.0\n";

$entete .= "From: $HTTP_POST_VARS[email]\n";

$entete .= "Reply-To: $HTTP_POST_VARS[email]\n";

if ($fj_b)

$entete .= "Content-Type: multipart/mixed;boundary="$boundary"\n\n";

else

$entete .= "Content-Type: text/html;\n\n";

if ($fj_b) {

// construction du corps

$corps = "--$boundary\n";

$corps .= "Content-type: text/html;charset="iso-8859-1"\n";

$corps .= "Content-Transfer-Encoding:8bit\n\n";

}

// ouverture de la template e-mail

$tpl = fopen($chemin_mail_tpl, "r");

$mess = fread($tpl, filesize($chemin_mail_tpl));

$mess = str_replace("{message}", nl2br($HTTP_POST_VARS[mess]), $mess);

$mess = str_replace("{pseudo}", $HTTP_POST_VARS[pseudo], $mess);

$mess = stripslashes($mess);

$corps .= $mess;

fclose($tpl);

$corps .= "\n\n";



// attachement des fichiers joints

for ($i=0; $i<=4; $i++) {

if ($_FILES["fichier$i"]["tmp_name"] != "" and $_FILES["fichier$i"]["tmp_name"] != "none") {

// ouverture du fichier joint

$fichier = fopen($_FILES["fichier$i"]["tmp_name"], "r");

$fichier_joint = fread($fichier, filesize($_FILES["fichier$i"]["tmp_name"]));

$fichier_joint = chunk_split(base64_encode($fichier_joint));

fclose($fichier);

// attachement du fichier dans le corps

$corps .= "--$boundary\n";

$corps .= "Content-Type: " . $_FILES["fichier$i"]["type"] . "; name="" . $_FILES["fichier$i"]["name"] . ""\n";

$corps .= "Content-Transfer-Encoding: base64\n";

$corps .= "Content-Disposition: attachment; filename="" . $_FILES["fichier$i"]["name"] . ""\n\n";

$corps .= "$fichier_joint\n";

}

}

if ($fj_b) $corps .= "--$boundary--\n";

mail($dest, $sujet, $corps, $entete);

include($chemin_confirm);

}

mysql_close($db);

?>
0
pulsi Messages postés 7 Date d'inscription mardi 14 novembre 2000 Statut Membre Dernière intervention 22 avril 2005
22 avril 2005 à 09:06
Merci beaucoup, je ne l'ai pas encore essayé mais merci pour la rapidité de réponse
je te répondrais pour te dire si ça a marché
a++
0
pulsi Messages postés 7 Date d'inscription mardi 14 novembre 2000 Statut Membre Dernière intervention 22 avril 2005
22 avril 2005 à 09:30
eh non, je n'y arrive pas, je ne suis pas experte en php, voici ce que j'ai fait...
sachant que mon champ de fichier se nomme "cv". j'ai enlevé la partie "y a til un fichier joint", ce qui m'interresse c'est le fichier joint soit ds le mail après le reste je m'en fou.
Ou est l'erreur ??? merci

<?php

$msg = "Nom :\t$nom\n";

$msg .= "Prénom :\t$prenom\n";

$msg .= "Adresse :\t$adresse\n";

$msg .= "Code postal :\t$codep\n";

$msg .= "Ville :\t$ville\n";

$msg .= "Téléphone :\t$tel\n";

$msg .= "Portable :\t$portable\n";

$msg .= "Mail:\t$mail\n";

$msg .= "Dilpome obtenu :\t$diplome\n";

$msg .= "Expérience :\t$experience\n";

  

 // attachement des fichiers joints

 for ($i=0; $i<=4; $i++) {

  if ($_FILES["fichier$i"]["cv"] != "" and $_FILES["fichier$i"]["cv"] != "none") {

   // ouverture du fichier joint

   $fichier = fopen($_FILES["fichier$i"]["cv"], "r");

   $fichier_joint = fread($fichier, filesize($_FILES["fichier$i"]["cv"]));

   $fichier_joint = chunk_split(base64_encode($fichier_joint));

   fclose($fichier);

   // attachement du fichier dans le corps

   $corps .= "--$boundary\n";

   $corps .= "Content-Type: " . $_FILES["fichier$i"]["type"] . "; cv="" . $_FILES["fichier$i"]["cv"] . ""\n";

   $corps .= "Content-Transfer-Encoding: base64\n";

   $corps .= "Content-Disposition: attachment; filename="" . $_FILES["fichier$i"]["cv"] . ""\n\n";

   $corps .= "$fichier_joint\n";

  }

 }

 if ($fj_b) $corps .= "--$boundary--\n";

 include($chemin_confirm);

}

$recipient = "adresse_mail@dsds.net";

$subject = "Candidature";

$mailheaders = "From: www.nomdusite.fr <> \n";

$mailheaders .= "Reply-To: $email\n\n";

mail($recipient, $subject, $msg, $mailheaders, $corps);

echo "<HTML>";

echo "Merci, nous avons bien reçu votre candidature. A bientôt...</table></tr>

";

echo "</HTML>";

mysql_close($db);

?>

his->adispo[] = $disposition;
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_sidhannowe Messages postés 75 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 11 décembre 2007
22 avril 2005 à 13:14
Arf c'est illisible, peut tu reposter en mettant les sauts de ligne et l'indentation stp.
0
pulsi Messages postés 7 Date d'inscription mardi 14 novembre 2000 Statut Membre Dernière intervention 22 avril 2005
22 avril 2005 à 13:30
eh oui effectivement :

mon champ de fichier se nomme "cv". j'ai enlevé la partie "y a til un fichier joint", ce qui m'interresse c'est le fichier joint soit ds le mail après le reste je m'en fou.Ou est l'erreur ??? merci

<?php
// champs de texte du formulaire (corps du mail)
$msg = "Nom :\t$nom\n";

$msg .= "Prénom :\t$prenom\n";

$msg .= "Adresse :\t$adresse\n";

$msg .= "Code postal :\t$codep\n";

$msg .= "Ville :\t$ville\n";

$msg .= "Téléphone :\t$tel\n";

$msg .= "Portable :\t$portable\n";

$msg .= "Mail:\t$mail\n";

$msg .= "Dilpome obtenu :\t$diplome\n";

$msg .= "Expérience :\t$experience\n";    

// attachement des fichiers joints  

for ($i=0; $i<=4; $i++) {   

if ($_FILES["fichier$i"]["cv"] != "" and $_FILES["fichier$i"]["cv"] != "none") {    

// ouverture du fichier joint  

  $fichier = fopen($_FILES["fichier$i"]["cv"], "r");  

  $fichier_joint = fread($fichier, filesize($_FILES["fichier$i"]["cv"]));   

 $fichier_joint = chunk_split(base64_encode($fichier_joint));    

fclose($fichier);    

// attachement du fichier dans le corps  

  $corps .= "--$boundary\n";  

  $corps .= "Content-Type: " . $_FILES["fichier$i"]["type"] . ";

 cv="" . $_FILES["fichier$i"]["cv"] . ""\n";   

 $corps .= "Content-Transfer-Encoding: base64\n"; 

   $corps .= "Content-Disposition: attachment;

 filename="" . $_FILES["fichier$i"]["cv"] . ""\n\n";  

  $corps .= "$fichier_joint\n";   }  } 

 if ($fj_b) $corps .= "--$boundary--\n"; 

 include($chemin_confirm); }

$recipient = "adresse_mail@dsds.net";

$subject = "Candidature";

$mailheaders = "From: www.nomdusite.fr <> \n";

$mailheaders .= "Reply-To: $email\n\n";

mail($recipient, $subject, $msg, $mailheaders, $corps);

echo "<HTML>";echo "Merci, nous avons bien reçu votre candidature. A bientôt...</table></tr>

";

echo "</HTML>"; mysql_close($db);

?>
0
cs_sidhannowe Messages postés 75 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 11 décembre 2007
22 avril 2005 à 15:26
lol, c'est pareil :-(
0
pulsi Messages postés 7 Date d'inscription mardi 14 novembre 2000 Statut Membre Dernière intervention 22 avril 2005
22 avril 2005 à 15:44
comment tu fais pour mettre les saut de ligne et incendation ??
0
cs_sidhannowe Messages postés 75 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 11 décembre 2007
22 avril 2005 à 16:44
Bah j'ai simplement copié collé. Le formatage était déjà dans
l'éditeur. L'indentation tant pis mais met au moins les sauts de lignes
0
pulsi Messages postés 7 Date d'inscription mardi 14 novembre 2000 Statut Membre Dernière intervention 22 avril 2005
22 avril 2005 à 16:56
c'est bizarre ce truc, je met des smiles pour séparer, j'espère que tu comprendras

eh oui effectivement :mon champ de fichier se nomme "cv". j'ai enlevé la partie "y a til un fichier joint", ce qui m'interresse c'est le fichier joint soit ds le mail après le reste je m'en fou.Ou est l'erreur ??? merci

<?php// champs de texte du formulaire (corps du mail)$msg = "Nom :\t$nom\n";$msg .= "Prénom :\t$prenom\n";$msg .= "Adresse :\t$adresse\n";$msg .= "Code postal :\t$codep\n";$msg .= "Ville :\t$ville\n";$msg .= "Téléphone :\t$tel\n";$msg .= "Portable :\t$portable\n";$msg .= "Mail:\t$mail\n";$msg .= "Dilpome obtenu :\t$diplome\n";$msg .= "Expérience :\t$experience\n";    // attachement des fichiers joints  for ($i=0; $i<=4; $i++) {   if ($_FILES["fichier$i"]["cv"] != "" and $_FILES["fichier$i"]["cv"] != "none") {    // ouverture du fichier joint    $fichier = fopen($_FILES["fichier$i"]["cv"], "r");    $fichier_joint = fread($fichier, filesize($_FILES["fichier$i"]["cv"]));    $fichier_joint = chunk_split(base64_encode($fichier_joint));    fclose($fichier);    // attachement du fichier dans le corps    $corps .= "--$boundary\n";    $corps .= "Content-Type: " . $_FILES["fichier$i"]["type"] . "; cv="" . $_FILES["fichier$i"]["cv"] . ""\n";    $corps .= "Content-Transfer-Encoding: base64\n";    $corps .= "Content-Disposition: attachment; filename="" . $_FILES["fichier$i"]["cv"] . ""\n\n";    $corps .= "$fichier_joint\n";   }  }  if ($fj_b) $corps .= "--$boundary--\n";  include($chemin_confirm); }$recipient = "adresse_mail@dsds.net";$subject = "Candidature";$mailheaders = "From: www.nomdusite.fr <> \n";$mailheaders .= "Reply-To: $email\n\n";mail($recipient, $subject, $msg, $mailheaders, $corps);echo "<HTML>";echo "Merci, nous avons bien reçu votre candidature. A bientôt...</table></tr>

";echo "</HTML>"; mysql_close($db);?>
0
cs_sidhannowe Messages postés 75 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 11 décembre 2007
22 avril 2005 à 20:25
Visiblement tu connais pas l'upload de fichier. Cherche un peu d'info
là dessus sur le net tu vas trouver facilement. Je vois par ex: $_FILES["fichier$i"]["cv"] tu dois laisser tmp_name et remplacer fichier par ton nom de champs.
0
Rejoignez-nous