Bonjour à tous,
Je cherche depuis quelques semaines et ne trouve de solutions... Malgré de nombreuses visites sur des sites très variés.
Je souhaite un formulaire avec pj pour que les utilisateurs puissent m'envoyer un document.
Et je souhaite recevoir les différentes informations et la pj sur mon mail.
Les codes sans la pj fonctionnent à peu près.

Soucis 1 : Mystérieusement le mail arrive mais la page reste bloquer sur la page vide php et ne renvoie pas sur les pages "merci", "erreur" ou "contact".

Soucis 2 : Par contre pour la partie pj, je me noie ...
J'ai trouvé des codes, mais je ne sais comment les intégrer, à quel moment où si ils sont bons ... J'ai trouvé uniquement un code qui fonctionne pour uploader des fichiers sur le serveur.

Quelqu'un peut-il me guider ?

Merci beaucoup et excellente soirée.

Le code html avec la ligne "pj"

<!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=UTF-8" />
<title></title>
<meta name="description" content="" />

</head>

<body>


<div class="conteneur">

  
   <div class="zonecontact">
      <form id="monform" action="envoi.php" method="post">
      <input type=hidden name=subject value=formmail> 
      
         <h3>Vous avez un projet en tête ?</h3>
         
         <p><br />
         <label for="form_lastname"></label>
           <input type="text" id="form_lastname" name="nom" value="Nom"/>
         </p>
         
         <p>
         <label for="form_entreprise"></label>
           <input type="text" id="form_entreprise" name="entreprise" value="Entreprise" />
         </p>
        
         <p>
         <label for="form_mail"></label>
           <input type="text" id="form_mail" name="mail" value="Mail"/>
         </p>
         
         <p>
         <label for="form_tel"></label>
           <input type="text" id="form_tel" name="telephone" value="Téléphone"/>
         </p>
         
         <p>
         <label class="cf_label" style="width:300px;"></label>
           <textarea id="text_9" class="cf_inputbox" name="infos" cols="30" title="" rows="5">Votre message</textarea>
         </p> 
      
         <p id="submit">
         <label class="form_label_nostyle">&nbsp;</label>
           <input type="submit" name="submit" value="Envoyer" />
         </p>
      
     </form>
   </div>

</div>     
    
</div>

</body>


Le php sans pj :
<?php
/*
modif dans contact.html
il faut retirer enctype="text/plain" du formulaire sinon le post est vide
*/
error_reporting(E_ALL);

if (!empty($_POST['submit']) && $_POST['submit'] == 'Envoyer')
// je pense que tu peux retirer la deuxieme condition ( && $_POST['submit'] == 'Envoyer')
// ca te genera si tu veux changer le contenu de ton bouton le !empty suffit
{
    // Quand tu as une grande suite de conditions, je te conseille d'écrire comme ca c'est plus lisible
    // et si tu t'y connais un peu en javascript, je te conseille de faire la verification en javascript d'abord, ca évite que s'il manque
    // quelque chose, ton client doivent retaper tout ce qu'il a tapé
    // en plus tu pourras lui dire éxactement ou est l'erreur
   if(!empty($_POST[ 'nom' ])
    && !empty($_POST['entreprise'])
    && !empty($_POST['mail'])
    && !empty($_POST['telephone'])
	&& !empty($_POST['infos'])) {

        extract($_POST);
//                   inutile puisque qu'apres quand tu fais "$message = " ca remplace la variable
//		$message=str_replace("\'","'",$message);

        $destinataire="monmail@yahoo.fr";

        $sujet="Vous avez un message";

        $message="Nouveau message \n

        NOM : $nom \n
		
		NOM : $entreprise \n

        MAIL : $mail \n

        TELEPHONE : $telephone \n
		
		LE MESSAGE : $infos";
		
		
        $entete="Reply-To: $mail \n";

        if(mail($destinataire,$sujet,$message,$entete)) {
            header("Locations :  http://monsite.fr/merci.html");
 
        } else {
//         la si il y a le moindre probleme dans l'envoi, ca passe ici et tu peux rediriger vers une autre page comme erreur
            header("Location :  http://monsite.fr/erreur.html");
 
        }
   }   
   else{
        header("Location :  http://monsite.fr/contact.html");
 
   }

}

?>



Et le bout de code pj, que je ne sais intégrer
	<?php
	// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
{
 
        // Testons si le fichier n'est pas trop gros
        if ($_FILES['monfichier']['size'] <= 1000000)
        {
 
		
		        // Testons si l'extension est autorisée
                $infosfichier = pathinfo($_FILES['monfichier']['name']);
                $extension_upload = $infosfichier['extension'];
                $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
                if (in_array($extension_upload, $extensions_autorisees))
                {
				
				        // On peut valider le fichier et le stocker définitivement
                        move_uploaded_file($_FILES['monfichier']['tmp_name'], 'uploads/' . basename($_FILES['monfichier']['name']));
                        echo "L'envoi a bien été effectué !";
                
                }
 
        } 
 }
 
?>
Salut à toi,


Faut être vigilant en php pour le premier problème.

a écrit :
 header("Location[#red]s[/#] :   http://monsite.fr/merci.html");


Ce petit "s" en trop et tu peux dire adieu à ta page de remerciement. Attention aux espaces aussi.

Smiley cligne

Pour ton problème 2: il y a des bibliothèques qui gèrent très bien cela et qui t'éviteront le copier-coller de scripts un peu bricolés << regarde ce lien
Modifié par jmlapam (09 Oct 2011 - 02:16)
salut

il ne faut pas que tu envoie la pièce sur le serveur mais chez le récepteur du mail !

regarde du coté de la fonction mail !

Content-Disposition: attachment; 


il faut aussi penser à l'encoding en base 64

ou prends phpmailer Smiley cligne
Tout d'abord, merci "jmlapam" pour le repérage de ces deux erreurs.
A force de "trifouiller" des choses que l'on ne maîtrise pas, on y voit plus rien...
Le code fonctionne désormais pour l'envoi classique, ce qui est déjà pas mal pour le moment.
J'entends parler de phpmailer, mais quel est le principe et comment ça fonctionne ?

J'ai eu l'impression en regardant de nombreux sites, qu'il y avait pas mal de façon de faire et je n'ai pas trouver d'exemple complet en php (plusieurs champs + champ pj)... du coup je suis un peu largué. Dès que j'ai du temps, je vais me mettre sérieusement au php.

Il ne me reste plus qu'à trouver la solution pour l'envoi de pj.
J'ai regardé brièvement les liens mais je dois étudier la chose plus en détails.

Par contre "phpCbien", tu me parles de l'envoi d'emails, mais moi je souhaite l'inverse, que l'utilisateur puisse par le biais d'un formulaire m'envoyer un email à moi avec une pièce jointe.