pb avec mon formulaire contact php pour envoyer la pièce jointe

pb avec mon formulaire contact php pour envoyer la pièce jointe - PHP - Programmation

Marsh Posté le 15-03-2011 à 10:56:47    

Bonjour,
 
J'ai créé un formulaire en php qui permet d'envoyer un mail sur ma boite au lettre depuis un site.
Le mail est les textes s'affichent bien cependant la pièce jointe n'est pas jointe. Son nom s'écrit cependant.
Pouvez vous m'aider à trouver la solution car je manipule php mais pas avec certitudes? :heink:  
Je pense que " $fichier = htmlspecialchars(addslashes($fichier));" ne sert qu'à réécrire le nom du fichier envoyé mais pas à l'envoyer. Par quoi le remplacer? :??:  
 
 
Voici le code php de départ:

Code :
  1. <?php
  2.  $erreur = NULL; $info = NULL;
  3.  if(!empty($_POST['nom']) AND !empty($_POST['email']) AND !empty($_POST['message'])){     extract($_POST);     if(preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $email))
  4.   {      $fichier = htmlspecialchars(addslashes($fichier));
  5.     $nom = htmlspecialchars(addslashes($nom));
  6.     $nomenf = htmlspecialchars(addslashes($nomenf));
  7.    $prenom = htmlspecialchars(addslashes($prenom));
  8.    $prenomenf = htmlspecialchars(addslashes($prenomenf));
  9.       $email = htmlspecialchars(addslashes($email));   
  10.     $message = htmlspecialchars(addslashes($message));
  11.     $destinataire = "mon adresse mail où est env le mail";
  12.     $sujet = "Formulaire de contact";
  13.     $entete = 'From : '.$email.'';
  14.     $message = 'Fichier : '.$fichier.' '."\n". 'Nom : '.$nom.' '."\n".' Prenom : '.$prenom.''."\n".' Prenom enfant : '.$prenomenf.''."\n".' Nom enfant : '.$nomenf.''."\n".' Email : '.$email.'  '."\n".' Message : '.$message.'';
  15.     mail($destinataire, $sujet, $message, $entete); 
  16.     $info = "Votre email à été envoyé";   
  17.     unset($_POST, $message, $nom, $nomenf, $email, $prenom, $prenomenf, $date, $fichier ); 
  18.     }
  19.       else{     $erreur="Adresse email invalide";     } 
  20.  }
  21.    else{     $erreur = "Veuillez remplir tous les champs obligatoires *"; }
  22.  ?>


 
 
Voici le code php du formulaire:
 

Code :
  1. <form method="post" target="" id="formulaire_contact" name="form_contact" >
  2.  <table width="631" border="0" align="center" cellpadding="0" cellspacing="0" id="form_vitrine">
  3.  <tr>
  4.   <td colspan="2"><div align="left"><em>&rarr; les champs marqu&eacute;s d'une * sont obligatoires. </em></div></td>
  5.  </tr>
  6.           <tr>
  7.             <td width="142" id="nom">NOM* : </td>
  8.             <td width="389" align="left"><input type="text" size="40" maxlength="64" name="nom" id="nom" value="<?php if(isset($_POST['nom'])) echo htmlspecialchars($_POST['nom']); ?>"/> </td>
  9.           </tr>
  10.           <tr>
  11.             <td id="prenomp">PRENOM : </td>
  12.             <td align="left"><input type="text" size="40" maxlength="64" name="prenom" id="prenomp" value="<?php if(isset($_POST['prenom'])) echo htmlspecialchars($_POST['prenom']); ?>" /></td>
  13.           </tr>
  14.    <tr>
  15.     <td id="nom">EMAIL* : </td>
  16.   <td align="left"><input type="text" size="40"  maxlength="64"  name="email" id="email" value="<?php if(isset($_POST['email'])) echo htmlspecialchars($_POST['email']); ?>" /></td>
  17.   </tr>
  18.           <tr>
  19.             <td colspan="2">&nbsp;</td>
  20.             </tr>
  21.           <tr>
  22.             <td colspan="2" id="txt_responsable">
  23.               Heureux parents de(s) l'enfant(s) d&eacute;sign&eacute;(s) ci - dessous, aimeraient publier  le faire - part de naissance ou la photo de mon/mes enfant(s) sur le site.</td>
  24.             </tr>
  25.           <tr>
  26.             <td colspan="2">&nbsp;</td>
  27.             </tr>
  28.           <tr>
  29.             <td id="nom_enf">NOM DE L'ENFANT : </td>
  30.             <td align="left"><input type="text" size="40" maxlength="64" name="nomenf" id="nomenf" value="<?php if(isset($_POST['nomenf'])) echo htmlspecialchars($_POST['nomenf']); ?>"/></td>
  31.           </tr>
  32.           <tr>
  33.             <td id="prenom_enf">PRENOM DE L'ENFANT : </td>
  34.             <td align="left"><input type="text" size="40" maxlength="64" name="prenomenf" id="prenomp" value="<?php if(isset($_POST['prenomenf'])) echo htmlspecialchars($_POST['prenomenf']); ?>" /></td>
  35.           </tr>
  36.   
  37.   
  38.     
  39.           <tr>
  40.             <td colspan="2" >&nbsp; </td>
  41.             </tr>
  42.           <tr>
  43.             <td colspan="2">&nbsp;</td>
  44.             </tr>
  45.           <tr>
  46.             <td id="fichier">Votre fichier : </td>
  47.             <td align="left"><input type="file" name="fichier" value="<?php if(isset($_POST['fichier'])) echo htmlspecialchars($_POST['fichier']); ?>"/>
  48.             (.jpeg uniquement) </td>
  49.           </tr>
  50.     <tr>
  51.             <td colspan="2">&nbsp;</td>
  52.             </tr>
  53.    <tr>
  54.             <td id="fichier">Votre petit mot*: </td>
  55.             <td align="left"><textarea name="message" cols="40" rows="10" id="message"><?php if(isset($_POST['message'])) echo htmlspecialchars($_POST['message']); ?> Votre petit mot ici... N'oubliez pas de nous donner la date de naissance de votre/vos petit(e)(s)</textarea></td>
  56.           </tr>
  57.           <tr>
  58.             <td>&nbsp;</td>
  59.             <td>&nbsp;</td>
  60.           </tr>
  61.      <tr>
  62.             <td id="annuler"><input type="Reset" name="Reset" value="Annuler" /></td>
  63.             <td id="envoyer" ><input type="submit" name="Submit" value="Envoyer" /></td>
  64.           </tr>
  65.      <tr>
  66.             <td>&nbsp;</td>
  67.             <td>&nbsp;</td>
  68.           </tr>
  69.         </table>
  70.    <span style="color:red;"><?php echo $erreur; ?></span><span style="color:green"><?php echo $info;?></span>
  71.   </form>



Merci beaucoup de prendre du temps ....

Reply

Marsh Posté le 15-03-2011 à 10:56:47   

Reply

Marsh Posté le 15-03-2011 à 11:36:35    

1. je pense pas que tu parviennes à récupérer ton image de la façon dont tu procèdes
regarde du côté de $_FILES (http://www.php.net/manual/fr/reserved.variables.files.php )
N'oublie pas non plus d'ajouter
enctype="multipart/form-data"
dans ta balise form.
 
2. là t'es qu'au début de tes problèmes, car pour ajouter la pièce jointe, il ne suffit pas de coller ta variable comme tu le fais.
 
Tourne toi vers des bibliothèques spécialisées dans la création et l'envoi de mail. (phpmailer est pas mal de mémoire, j'utilise Zend_Mail dernièrement, mais ça je pense que c'est même pas envisageable à ton niveau).
Faire la pièce jointe mail à la main est un non-sens à mon avis:
- tu réinventes la roue,
- et c'est pas particulièrement facile à faire

Reply

Sujets relatifs:

Leave a Replay

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