Forums Webou.net - Hébergement gratuit et sans publicités avec PHP/MySQL Webou Webou Pro
Recherche avancée  
*
Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
28 Octobre 2020, 01:13:39


Connexion avec identifiant, mot de passe et durée de la session


Pages: [1]   Bas de page
  Imprimer  
Auteur Fil de discussion: Envoie un formulaire avec piece jointe  (Lu 16232 fois)
0 Membres et 1 Invité sur ce fil de discussion.
ChevalierN
Nouveau
*
Hors ligne Hors ligne

Messages: 6


Voir le profil
« le: 30 Décembre 2008, 17:06:54 »

Bonsoir à tous,

Bon j'ai un formulaire avec nom, prénom, ville, code postal, .... ect et j'ai rajouté à mon formulaire pour récupèrer une pièce jointe si le client veut envoyer une image, un pdf, une doc, enfin tous les formats possible quoi ^^ enfin sauf php et html.

voilà le code de ma page contact.html

Citation
<form method="post" action='contact.php' enctype="multipart/form-data" name="devis" onSubmit="return validation();"><INPUT TYPE="hidden" NAME="sujet" VALUE="Contact">

              <span class="Style15"><strong>Fichier joint:</strong></span><br />
      <input type="hidden" name="MAX_FILE_SIZE" value="100000"><input name="Fichier" type="file" size="16"> <span class="Style15"><strong>(8Mo Maximum)</strong></span>
        <br/>
                                          <br />
<input type="submit" name="envoi" value="Envoyer">
                                    &nbsp;&nbsp;&nbsp;&nbsp;
                                      <input type=reset name=Effacer value=Effacer> <br />
                             
                            </form>

contact.php

Citation
<?php
include 'contact.config.php';

// on teste si le formulaire a été soumis
if (!isset($_POST['envoi']))
   {
      // formulaire non envoyé
      echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
   }
   else
   {
   // formulaire envoyé, on récupère tous les champs.
      $sujet=$_POST['sujet'];
      $nom =$_POST['nom'];
      $adresse=$_POST["adresse"];
      $code=$_POST["code"];
      $ville=$_POST["ville"];
      $tel=$_POST["tel"];
      $email=$_POST['email'];
      $msg=$_POST["message"];
   
      // On va vérifier les variables et l'email ...
      $email1 = (verifmail($email)); // soit l'email est vide si erroné, soit il vaut l'email entré   
      if(($email1 != "")&($nom != "")&($ville != "")&($code != "")&($tel != "")&($adresse != "")&($msg != ""))
      {

                 //Corps du mail en commençant par le message principal
      setlocale (LC_TIME, 'fr_FR');
                         $mail_corps =  "Envoyé le ".strftime("%A %d %B %Y à %Hh%M")." par $nom\r\n";
      $mail_corps .= "\r\n";   
      $mail_corps .="Sujet : $sujet\r\n";
      $mail_corps .= "Demande de : $nom $prenom\r\n";
      $mail_corps .= "Adresse : $adresse $code $ville $pays\r\n";
      $mail_corps .= "\r\n";
      $mail_corps .= "Téléphone : $tel\r\n";
      $mail_corps .= "Mail : $email\r\n\n";      
      $mail_corps .= "Message du client : $msg\r\n\n";
   
   //Préparation de l'entête du mail:
      $boundary = '-----=' . md5(uniqid(mt_rand()));
      $mail_entete = "From: $email\r\n";
      $mail_entete .= "Reply-To: $email\r\n";
      $mail_entete .= "MIME-Version: 1.0\r\n";
      $mail_entete .= 'Content-Type: multipart/mixed; boundary="'.$boundary.'"'."\r\n\n";
      $mail_entete .= "X-Mailer: PHP/" . phpversion() . "\n" ;
      
   //Corps du mail en commençant par le message principal
      $message .= '--'.$boundary."\r\n";
      $message .= 'Content-Type: text/plain; charset="iso-8859-1"'."\r\n";
      $message .= 'Content-Transfer-Encoding: 8bit'."\r\n\n";
      $message .= "\r\n\n";
      $message .= $mail_corps."\r\n\n";
      $message .= "\r\n\n";

   //**********************PIECE JOINTE******************************//
      $file_name = $_FILES['Fichier']['name'];
      $source = $_FILES['Fichier']['tmp_name'];
      $file_type = $_FILES['Fichier']['type'];
      $file_size = $_FILES['Fichier']['size'];   
      move_uploaded_file($source,"./".$file_name); 
      

      if($file_name!="")
         {
            $file = $name_file;
            $handle = fopen($file,'rb');
            $content = fread($handle, $file_size);
            $content = chunk_split(base64_encode($content));
            fclose($handle);
            
            $message .= '--'.$boundary."\r\n";
            $message .= 'Content-type:'.$file_type.';name='.$file_name."\r\n";
            $message .= 'Content-transfer-encoding:base64'."\r\n";
            $message .= 'Content-Disposition:inline; filename='.$file_name.'\r\n\n';
            $message .= '\r\n\n';
            $message .= $content."\r\n";
         
         }      
      $message .= '--'.$boundary.'--'."\r\n";
   
      // envoi du mail
       if (mail($to,"demande de devis",$message,$mail_entete)) {
       //Le mail est bien expédié
          include($page_ok);
       } else {
       //Le mail n'a pas été expédié
          include($page_erreur);
       }
   }
}
                                             
?>

Bon mon problème avec le fichie jointe pendant l'envoie du formulaire, je le reçoit bien, avec le nom et la taille mais pas le contenu du fichier.

Par exemple, je mets une image dans le formulaire image.jpeg, j'envoie le formulaire.
Je regarde sur la boite mail, je vois bien la pièce jointe, je le télécharge, j'ai bien le même nom image.jpeg et la même taille du fichier, puis je veux regarde l'image et là je ne peux pas voir l'image image.jpeg.

Alors je crois qu'il me manque un petit truc et je crois que c'est la fonction file_get_contents($file_name) et peut-être faire des restreintes des fichiers je pense (.pdf,.doc,.xdoc,xls,jpeg,bmp,ect ...).

Merci d'avance pour ceux qui m'aide (j'ai vu une class mail pour ça mais je ne veux pas l'utiliser ^^ car je veux juste la pièce jointe, si il n'y a pas de solution, ben je la prendrais alors ^^).
Journalisée
Erreur de base de données
Merci de réessayer. Si l'erreur se reproduit, merci de signaler cette erreur à un administrateur.
Retour
Propulsé par MySQL Propulsé par PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Dilber MC Theme by HarzeM
Page générée en 0.044 secondes avec 22 requêtes.