Formulaire + pièce jointe!

Formulaire + pièce jointe! - PHP - Programmation

Marsh Posté le 29-01-2009 à 14:11:21    

Bonjour,  
 
J'ai créer un formulaire très simple sur mon site avec prénom, nom etc. Et je voudrais que les gens puissent envoyer également une pièce jointe (style en .doc). En gros, le formulaire est envoyé sur une boite mail avec les renseignements, et je voudrais pouvoir avoir également la pièce jointe en question.  
Pour le moment, je n'ai pas trouvé la sol malgré toutes mes tentatives!!
Qqn pourrait me donner une piste??
 
Merci

Reply

Marsh Posté le 29-01-2009 à 14:11:21   

Reply

Marsh Posté le 29-01-2009 à 14:18:36    

En cherchant 1 seconde sur Google tu tombe sur:
http://www.vulgarisation-informatique.com/mail.php

 

Ca explique la fonction mail de php.

 

Il ne te reste plus qu'à faire ton formulaire avec un champ input type file. En cherchant sur le forum tu devrais trouver la réponse.

 

Edit: Si jamais avec ca tu as des problèmes n'hésite pas à poster ton code on te filera un coup de main ;)


Message édité par aspirateur le 29-01-2009 à 14:19:58
Reply

Marsh Posté le 29-01-2009 à 17:39:29    

merci je redis si jamais j'y arrive toujours pas!

Reply

Marsh Posté le 30-01-2009 à 11:31:04    

Bon alors voici mon code:  
la page du formulaire = form.php
 

Citation :

<?php
// Couleur du texte des champs si erreur saisie utilisateur
$color_font_warn="#FF0000";
// Couleur de fond des champs si erreur saisie utilisateur
$color_form_warn="#FFCC66";
// Ne rien modifier ci-dessous si vous n’êtes pas certain de ce que vous faites !
if(isset($_POST['submit'])){
 $erreur="";
 // 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_1=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_1)));
 // Verification des champs
 if(strlen($f_1)<2){
  $erreur.="<li><span class='txterror'>Le champ &laquo; Nom &raquo; est vide ou incomplet.</span>";
  $errf_1=1;
 }
 if($erreur=="" ){
  // Création du message
  $titre="Message de votre site";
  $tete="From:Site@site.fr\n";
  $corps.="Nom : ".$f_1."\n";
  if(mail("monmail@monsite.fr", $titre, stripslashes($corps), $tete)){
   $ok_mail="true";
  }else{
   $erreur.="<li><span class='txterror'>Une erreur est survenue lors de l'envoi du message, veuillez refaire une tentative.</span>";
  }
 }
}
?>
<p class="bla"><b><u>Déposer vos coordonnées, votre CV :</b></u>
<fieldset>
       <legend><b>Vos coordonnées</B></legend>
<form action='index2.php?page=envoi' method='post' name='Form'>
<P>Nom:
<INPUT type="text" name="nom" size=30>
 
Prénom:
<INPUT type="text" name="prenom" size=30>
</p>
 
<p>Adresse e-mail:<br>
<input type="text" name="mail" size=50>
 
 
Téléphone fixe:
<input type="text" name="telfix" size=10>
 
Téléphone mobile:
<input type="text" name="telmob" size=10>
 
<br>
 
<input type="hidden" name="max_file_size" value="100000">  
Déposer votre CV:<input name="fichier" type="file" size="16">
</p>
</fieldset>
<fieldset>
<legend><b>Votre message</B></legend>
<p>Objet:<br>
<input type="text" name="objet" size=30>
</P>
<P>Message:<br>
<textarea name="message" cols=90 rows=25></textarea>
</p></fieldset><center><input type="reset" name="Reset" value="Effacer">  
<INPUT type="submit" value="Envoyer"></center>
</FORM>  


 
Et voila la page envoi.php que j'avais faite quand il n'y avait pas la pièce jointe:  

Citation :

<?php
 
$_POST['nom']=$nom;
$_POST['prenom']=$prenom;
$_POST['mail']=$mail;
$_POST['telfix']=$telfix;
$_POST['telmob']=$telmob;
$_POST['objet']=$objet;
$_POST['message']=$message;
$mailenvoye="Bonjour,
 
 
Voici les informations laissées par le contact :
 
NOM : $nom ; PRENOM : $prenom  
 
MAIL : $mail
 
TEL FIX : $telfix ; TEL MOBILE : $telmob
 
Voici le commentaire qu'il vous a laissé :
$message";
 
mail("monmail@monsite.fr","$objet","$mailenvoye" );
 
?>
<p class=titre>message de remerciement</p>
<br><br>
 
                       
 <CENTER><b>petite phrase de remerciement...</B>
 
 


 
Voila, et je n'arrive pas à intégrer la pièce jointe, j'ai regardé le site donné ds le message précédent et le code mais je n'arrive pas à faire correspondre la pièce jointe du formulaire avec celle de ce code.
Voila ce que j'ai fait pour le moment mais ce n'est absolument pas satisfaisant :  

Citation :

<?php
 
$_POST['nom']=$nom;
$_POST['prenom']=$prenom;
$_POST['mail']=$mail;
$_POST['telfix']=$telfix;
$_POST['telmob']=$telmob;
$_POST['objet']=$objet;
$_POST['message']=$message;
     //-----------------------------------------------
     //DECLARE LES VARIABLES
     //-----------------------------------------------
 
     $email_expediteur='$mail';
     $email_reply='email_de_reponse@fai.fr';
     $message_texte='Bonjour,'."\n\n".'Voici un message au format texte';
 
     $message_html='<html>
     <head>
     <title>Titre</title>
     </head>
     <body>Test de message</body>
     </html>';
 
     //-----------------------------------------------
     //GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML
     //-----------------------------------------------
 
     $frontiere = '-----=' . md5(uniqid(mt_rand()));
 
     //-----------------------------------------------
     //HEADERS DU MAIL
     //-----------------------------------------------
 
     $headers = 'From: "Nom" <'.$email_expediteur.'>'."\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/plain; charset="iso-8859-1"'."\n";
     $message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
     $message .= $message_texte."\n\n";
 
     //-----------------------------------------------
     //MESSAGE HTML
     //-----------------------------------------------
     $message .= '--'.$frontiere."\n";
 
     $message .= 'Content-Type: text/html; charset="iso-8859-1"'."\n";
     $message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
     $message .= $message_html."\n\n";
 
     $message .= '--'.$frontiere.'--'."\n";
 
     //-----------------------------------------------
     //PIECE JOINTE
     //-----------------------------------------------
 
     $message .= 'Content-Type: image/jpeg; name="nom_du_fichier.jpg"'."\n";
     $message .= 'Content-Transfer-Encoding: base64'."\n";
     $message .= 'Content-Disposition:attachement; filename="nom_du_fichier.jpg"'."\n\n";
 
     $message .= chunk_split(base64_encode(file_get_contents('nom_du_fichier.jpg')))."\n";
 
     if(mail($destinataire,$sujet,$message,$headers))
     {
          echo 'Le mail a été envoyé';
     }
     else
     {
          echo 'Le mail n\'a pu être envoyé';
     }
?>


 
Comment faire ?
 
 

Reply

Marsh Posté le 30-01-2009 à 11:53:00    

Je ne vais pas être d'une grande aide, ca fait bien longtemps que je n'ai pas utiliser cette fonction.
 
Cherche sur google des infos sur la fonction mail() de php.
 
C'est comme ca que j'avais fait à l'époque.
 
Bon courage

Reply

Marsh Posté le 30-01-2009 à 12:39:29    

C'est bon j'ai trouvé!  
Merci !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed