bonjour...
Ce que je veux faire, c'est créer un formulaire de contact avec pièces jointes.
j'ai donc créé un formulaire de contact qui fonctionne très bien à part les pièces jointes.
Je sais qu'il existe des codes utilisant la POO, mais j'aimerai garder le mien.
j'ai ajouté à mon code de départ la partie $filen_name... concernant les pièces jointes (code trouvé sur internet)
Mon script envoi un e-mail mais PAS la pièce jointe..... Est-ce que quelqu'un pourrait me dire comment résoudre mon problème. MERCI
Voici mon code.
Code :
- <?php
- //function permettant la vérification du format de l'adresse e-mail
- function valideEmail($email)
- {
- return eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*$", $email);
- }
- //
- if(isset($_POST) && isset($_POST['nom']) && isset($_POST['email']) && isset($_POST['dest']) && isset($_POST['message'])){
- extract ($_POST);
- //si aucun des champs du formulaire n'est vide alors on exécute les instructions
- if (!empty($nom) && !empty($email) && !empty($dest) && !empty($message)){
- if (!valideEmail($email)){ // verifie si l'adresse e-mail est au bon format
- echo 'le mail n\'est pas au bon format : example@operateur.fr'; // message d'erreur si faux
- }
- //$message=addslashes($message); -> supprimer les antislashes dans le message reçu
- $message=str_replace("\'","'",$message); //remplacer un caractère par un autre
- list($nomdest, $predest) = split('[/.-]', $dest); //selectionner un certain nombre de caractères de la variable
- //$desti=substr($dest,0,8); -> retenir les caratères a partir du premier jusqu'au huitieme
- $link = mysql_connect(); // connection au serveur
- if(!$link) {echo"Impossible de se connecter au serveur".mysql_error();exit;} //verifie la connection au serveur
- mysql_select_db(basename,$link); //connection a la base de données
- $requete = "select email from admin where nom='$nomdest' and prenom='$predest'"; //requête sql
- $req = mysql_query($requete); //exécution de la requête
- while($data = mysql_fetch_assoc($req)) //Lit une ligne de résultat MySQL dans un tableau associatif
- {
- $art = $data['email'];
- }
- // destinataire
- $destinataire=$art;
- //sujet
- $sujet="Formulaire de contact";
- //entete
- $entete= 'From:'.$nom.' <'.$email.'>'."\n";
- $entete .= 'Mime-Version: 1.0'."\r\n";
- $entete .= 'Content-Type: multipart/mixed;'."\r\n";
- $entete .= "\r\n";
- //message
- $msg="Un nouveau message est arrivé \n
- Nom : $nom \n
- E-mail : $email \n
- Message : $message ";
- //PIECE JOINTE
- $file_name = $_POST['pj'];
- if(file_exists($file_name))
- {
- $file_type = filetype($file_name);
- $file_size = filesize($file_name);
- $msg .= 'Content-Type:'.$file_type.'; name="'.$file_name.'"'."\n";
- $msg .= 'Content-Transfer-Encoding: base64'."\n";
- $msg .= 'Content-Disposition:attachement; filename="'.$file_name.'"'."\n\n";
- $msg .= chunk_split(base64_encode(file_get_contents($file_name)))."\n";
- }
- mail($destinataire,$sujet,$msg,$entete); // fonction mail() qui permet l'envoi
- ?>
- <!-- formulaire de confirmation de l'envoi avec possibilite de retour vers un formulaire vide -->
- <fieldset><legend>Le Message a bien été envoyé ! </legend>
- <form method="POST" action="contact.php" enctype="multipart/form-data">
- <p align="center">
- <input type="submit" name="retour" value="Retour au formulaire de contact">
- </p>
- </form>
- </fieldset>
- <?php
- }
- else {
- ?>
- <!-- formulaire d'erreur si un des champs est vide -->
- <fieldset><legend>Vous n'avez pas rempli tous les champs ! </legend>
- <form method="POST" action="contact.php" enctype="multipart/form-data">
- <p align="center">
- <input type="submit" name="retour" value="Retour au formulaire de contact">
- </p>
- </form>
- </fieldset>
- <?php
- }
- }
- ?>
|
Message édité par yuxi le 30-12-2008 à 17:23:06